优化半自动,连发,栓动/泵动的开火冷却逻辑
This commit is contained in:
parent
d2be87a71c
commit
96a0ffb020
57 changed files with 544 additions and 1198 deletions
|
@ -54,6 +54,7 @@ public class ClickHandler {
|
|||
if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new FireMessage(1));
|
||||
ClientEventHandler.holdFire = false;
|
||||
ClientEventHandler.customRpm = 0;
|
||||
}
|
||||
if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) {
|
||||
if (player.hasEffect(ModMobEffects.SHOCK.get())) {
|
||||
|
|
|
@ -73,18 +73,18 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
|
|||
gun.setRotZ(-11 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz));
|
||||
|
||||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (-0.06f * fp - 0.09f * fr));
|
||||
shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz));
|
||||
shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz));
|
||||
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
|
||||
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
|
||||
shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz));
|
||||
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
|
||||
shen.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.3 * 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.27 * zt)));
|
||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt)));
|
||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt)));
|
||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
|
||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
|
||||
|
||||
slide.setPosZ(1.5f * (float) fp);
|
||||
|
||||
|
|
|
@ -82,18 +82,18 @@ public class Glock18ItemModel extends GeoModel<Glock18Item> {
|
|||
gun.setRotZ(-11 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz));
|
||||
|
||||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (-0.06f * fp - 0.09f * fr));
|
||||
shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz));
|
||||
shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz));
|
||||
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
|
||||
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
|
||||
shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz));
|
||||
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
|
||||
shen.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.3 * zt)));
|
||||
shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt)));
|
||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt)));
|
||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * 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)));
|
||||
|
||||
slide.setPosZ(1.5f * (float) fp);
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ public class M1911ItemModel extends GeoModel<M1911Item> {
|
|||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone slide = getAnimationProcessor().getBone("huatao");
|
||||
CoreGeoBone bullet = getAnimationProcessor().getBone("bullet");
|
||||
CoreGeoBone hammer = getAnimationProcessor().getBone("hammer");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
|
@ -71,20 +72,21 @@ public class M1911ItemModel extends GeoModel<M1911Item> {
|
|||
gun.setScaleZ(1f - (0.35f * (float) zp));
|
||||
|
||||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (-0.06f * fp - 0.09f * fr));
|
||||
shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz));
|
||||
shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz));
|
||||
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
|
||||
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
|
||||
shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz));
|
||||
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
|
||||
shen.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.3 * 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.27 * zt)));
|
||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt)));
|
||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt)));
|
||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
|
||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
|
||||
|
||||
slide.setPosZ(2.75f * (float) fp);
|
||||
hammer.setRotX(60 * Mth.DEG_TO_RAD + (120 * Mth.DEG_TO_RAD * (float) fp));
|
||||
|
||||
CoreGeoBone root = getAnimationProcessor().getBone("root");
|
||||
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
|
||||
|
|
|
@ -57,31 +57,31 @@ public class M60ItemModel extends GeoModel<M60Item> {
|
|||
r.setRotX(1.5f);
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 5 && stack.getOrCreateTag().getBoolean("bullet_chain")) {
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 5 && stack.getOrCreateTag().getBoolean("HideBulletChain")) {
|
||||
b5.setScaleX(0);
|
||||
b5.setScaleY(0);
|
||||
b5.setScaleZ(0);
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 4 && stack.getOrCreateTag().getBoolean("bullet_chain")) {
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 4 && stack.getOrCreateTag().getBoolean("HideBulletChain")) {
|
||||
b4.setScaleX(0);
|
||||
b4.setScaleY(0);
|
||||
b4.setScaleZ(0);
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 3 && stack.getOrCreateTag().getBoolean("bullet_chain")) {
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 3 && stack.getOrCreateTag().getBoolean("HideBulletChain")) {
|
||||
b3.setScaleX(0);
|
||||
b3.setScaleY(0);
|
||||
b3.setScaleZ(0);
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 2 && stack.getOrCreateTag().getBoolean("bullet_chain")) {
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 2 && stack.getOrCreateTag().getBoolean("HideBulletChain")) {
|
||||
b2.setScaleX(0);
|
||||
b2.setScaleY(0);
|
||||
b2.setScaleZ(0);
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 1 && stack.getOrCreateTag().getBoolean("bullet_chain")) {
|
||||
if (stack.getOrCreateTag().getInt("ammo") < 1 && stack.getOrCreateTag().getBoolean("HideBulletChain")) {
|
||||
b1.setScaleX(0);
|
||||
b1.setScaleY(0);
|
||||
b1.setScaleZ(0);
|
||||
|
|
|
@ -77,7 +77,7 @@ public class M870ItemModel extends GeoModel<M870Item> {
|
|||
|
||||
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.4 * zt)));
|
||||
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.77 * 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)));
|
||||
|
|
|
@ -60,26 +60,26 @@ public class MarlinItemModel extends GeoModel<MarlinItem> {
|
|||
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.setPosY(1.06f * (float) zp - (float) (0.2f * zpz));
|
||||
gun.setPosZ(3f * (float) zp + (float) (0.2f * zpz));
|
||||
gun.setRotZ((float) (0.02f * zpz));
|
||||
gun.setScaleZ(1f - (0.5f * (float) zp));
|
||||
gun.setScaleZ(1f - (0.2f * (float) zp));
|
||||
|
||||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
|
||||
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
|
||||
shen.setRotX((float) (0.02f * fp + 0.25f * fr + 0.01f * fpz));
|
||||
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
|
||||
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
|
||||
shen.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.4 * zt)));
|
||||
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * 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)));
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
if (stack.getOrCreateTag().getBoolean("empty")) {
|
||||
jichui.setRotX(-0.52f);
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@ public class Ntw20Model extends GeoModel<Ntw20Item> {
|
|||
CoreGeoBone scope = getAnimationProcessor().getBone("scope");
|
||||
CoreGeoBone l = getAnimationProcessor().getBone("l");
|
||||
CoreGeoBone r = getAnimationProcessor().getBone("r");
|
||||
CoreGeoBone action = getAnimationProcessor().getBone("action");
|
||||
CoreGeoBone lh = getAnimationProcessor().getBone("lh");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
|
@ -92,6 +94,9 @@ public class Ntw20Model extends GeoModel<Ntw20Item> {
|
|||
|
||||
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 4.3));
|
||||
|
||||
action.setPosZ(6f * (float) ClientEventHandler.actionMove);
|
||||
lh.setPosZ(-6f * (float) ClientEventHandler.actionMove);
|
||||
|
||||
CoreGeoBone root = getAnimationProcessor().getBone("root");
|
||||
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
|
||||
root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY));
|
||||
|
|
|
@ -69,7 +69,7 @@ public class SentinelItemModel extends GeoModel<SentinelItem> {
|
|||
gun.setScaleZ(1f - (0.7f * (float) zp));
|
||||
|
||||
scope.setScaleZ(1f - (0.8f * (float) zp));
|
||||
cb.setRotZ(cb.getRotZ() + times * (float) (stack.getOrCreateTag().getDouble("chamber_rot")));
|
||||
cb.setRotZ((float) (cb.getRotZ() + times * 10 * ClientEventHandler.chamberRot));
|
||||
|
||||
CoreGeoBone holo = getAnimationProcessor().getBone("holo");
|
||||
holo.setPosY(0.09f);
|
||||
|
|
|
@ -35,6 +35,8 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
|
|||
public void setCustomAnimations(Trachelium animatable, long instanceId, AnimationState animationState) {
|
||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone hammer = getAnimationProcessor().getBone("jichui");
|
||||
CoreGeoBone lun = getAnimationProcessor().getBone("lun");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
|
@ -67,18 +69,21 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
|
|||
|
||||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
|
||||
shen.setPosZ((float) (3.325 * fp + 0.34f * fr + 2.35 * fpz));
|
||||
shen.setRotX((float) (0.05f * fp + 0.3f * fr + 0.2f * fpz));
|
||||
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
|
||||
shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz));
|
||||
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
|
||||
shen.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.2 * zt)));
|
||||
shen.setRotX((float) (shen.getRotX() * (1 - 0.3 * zt)));
|
||||
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
|
||||
shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt)));
|
||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
|
||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
|
||||
|
||||
hammer.setRotX(60 * Mth.DEG_TO_RAD * (float) fp);
|
||||
lun.setRotZ(-120 * Mth.DEG_TO_RAD * (float) fp);
|
||||
|
||||
CoreGeoBone root = getAnimationProcessor().getBone("root");
|
||||
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
|
||||
root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY));
|
||||
|
|
|
@ -80,9 +80,6 @@ public class MinigunItemRenderer extends GeoItemRenderer<MinigunItem> {
|
|||
|
||||
Player player = mc.player;
|
||||
if (player != null) {
|
||||
|
||||
ItemStack itemStack = player.getMainHandItem();
|
||||
|
||||
if (name.equals("flare")) {
|
||||
if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) {
|
||||
bone.setHidden(true);
|
||||
|
@ -95,7 +92,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<MinigunItem> {
|
|||
}
|
||||
|
||||
if (name.equals("light")) {
|
||||
bone.setHidden(!(itemStack.getOrCreateTag().getDouble("fire_animation") > 0));
|
||||
bone.setHidden(!(ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,10 +13,8 @@ import net.mcreator.superbwarfare.perk.Perk;
|
|||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.minecraft.client.CameraType;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
|
@ -123,14 +121,14 @@ public class CrossHairOverlay {
|
|||
RenderSystem.disableBlend();
|
||||
RenderSystem.setShaderColor(1, 1, 1, 1);
|
||||
|
||||
if (!stack.is(ModTags.Items.GUN)) return;
|
||||
// if (!stack.is(ModTags.Items.GUN)) return;
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("need_bolt_action")) {
|
||||
Font font = Minecraft.getInstance().font;
|
||||
Component component = Component.translatable("des.superbwarfare.need_bolt_action");
|
||||
|
||||
guiGraphics.drawString(font, component, w / 2 - font.width(component) / 2, h / 2 + 50, 0xFF6969);
|
||||
}
|
||||
// if (stack.getOrCreateTag().getBoolean("need_bolt_action")) {
|
||||
// Font font = Minecraft.getInstance().font;
|
||||
// Component component = Component.translatable("des.superbwarfare.need_bolt_action");
|
||||
//
|
||||
// guiGraphics.drawString(font, component, w / 2 - font.width(component) / 2, h / 2 + 50, 0xFF6969);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -116,6 +116,11 @@ public class ClientEventHandler {
|
|||
public static boolean holdFire = false;
|
||||
public static int burstFireSize = 0;
|
||||
|
||||
public static int customRpm = 0;
|
||||
|
||||
public static double chamberRot = 0;
|
||||
public static double actionMove = 0;
|
||||
|
||||
@SubscribeEvent
|
||||
public static void handleWeaponTurn(RenderHandEvent event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
|
@ -162,6 +167,7 @@ public class ClientEventHandler {
|
|||
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
int mode = GunsTool.getGunIntTag(stack, "FireMode");
|
||||
|
||||
// 精准度
|
||||
float times = (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8);
|
||||
|
@ -202,31 +208,7 @@ public class ClientEventHandler {
|
|||
if (player.getPersistentData().getDouble("noRun") == 0 && player.isSprinting() && GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) != GLFW.GLFW_PRESS) {
|
||||
cantFireTime = Mth.clamp(cantFireTime + 3 * times, 0, 24);
|
||||
} else {
|
||||
cantFireTime = Mth.clamp(cantFireTime - 6 * speed * times, 0, 24);
|
||||
}
|
||||
|
||||
if ((holdFire || burstFireSize > 0)
|
||||
&& (player.getMainHandItem().is(ModTags.Items.NORMAL_GUN)
|
||||
&& cantFireTime == 0
|
||||
&& drawTime < 0.01
|
||||
&& !notInGame()
|
||||
&& !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit
|
||||
&& (!(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))
|
||||
&& !stack.getOrCreateTag().getBoolean("reloading")
|
||||
&& !stack.getOrCreateTag().getBoolean("charging")
|
||||
&& stack.getOrCreateTag().getInt("ammo") > 0
|
||||
&& !player.getCooldowns().isOnCooldown(stack.getItem())
|
||||
&& !stack.getOrCreateTag().getBoolean("need_bolt_action"))
|
||||
|| (stack.is(ModItems.MINIGUN.get()) && !player.isSprinting() && stack.getOrCreateTag().getDouble("overheat") == 0 && !player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getDouble("minigun_rotation") >= 10
|
||||
))) {
|
||||
int customRpm = 0;
|
||||
|
||||
if (stack.getItem() == ModItems.DEVOTION.get()) {
|
||||
customRpm = stack.getOrCreateTag().getInt("customRpm");
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.MINIGUN.get() && player.isInWater()) {
|
||||
customRpm = (int) (-0.25 * stack.getOrCreateTag().getDouble("rpm"));
|
||||
cantFireTime = Mth.clamp(cantFireTime - 6 * speed * times, 0, 40);
|
||||
}
|
||||
|
||||
int rpm = (int) (stack.getOrCreateTag().getDouble("rpm") + customRpm);
|
||||
|
@ -244,6 +226,27 @@ public class ClientEventHandler {
|
|||
// cooldown in ms
|
||||
int cooldown = (int) (1000 / rps);
|
||||
|
||||
if ((holdFire || burstFireSize > 0)
|
||||
&& (player.getMainHandItem().is(ModTags.Items.NORMAL_GUN)
|
||||
&& cantFireTime == 0
|
||||
&& drawTime < 0.01
|
||||
&& !notInGame()
|
||||
&& !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit
|
||||
&& (!(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))
|
||||
&& !stack.getOrCreateTag().getBoolean("reloading")
|
||||
&& !stack.getOrCreateTag().getBoolean("charging")
|
||||
&& stack.getOrCreateTag().getInt("ammo") > 0
|
||||
&& !player.getCooldowns().isOnCooldown(stack.getItem())
|
||||
&& !stack.getOrCreateTag().getBoolean("need_bolt_action"))
|
||||
|| (stack.is(ModItems.MINIGUN.get()) && !player.isSprinting() && stack.getOrCreateTag().getDouble("overheat") == 0 && !player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getDouble("minigun_rotation") >= 10
|
||||
))) {
|
||||
|
||||
if (mode == 0) {
|
||||
if (clientTimer.getProgress() == 0) {
|
||||
clientTimer.start();
|
||||
shootClient(player);
|
||||
}
|
||||
} else {
|
||||
if (!clientTimer.started()) {
|
||||
clientTimer.start();
|
||||
// 首发瞬间发射
|
||||
|
@ -252,18 +255,31 @@ public class ClientEventHandler {
|
|||
|
||||
if (clientTimer.getProgress() >= cooldown) {
|
||||
shootClient(player);
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(spread, burstFireSize));
|
||||
clientTimer.setProgress((clientTimer.getProgress() - cooldown));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (notInGame()) {
|
||||
clientTimer.stop();
|
||||
}
|
||||
|
||||
} else {
|
||||
if (mode != 0) {
|
||||
clientTimer.stop();
|
||||
}
|
||||
fireSpread = 0;
|
||||
}
|
||||
|
||||
gunPartMove(times);
|
||||
|
||||
if (mode == 0 && clientTimer.getProgress() >= cooldown) {
|
||||
clientTimer.stop();
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.DEVOTION.get() && (stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading"))) {
|
||||
customRpm = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static void shootClient(Player player) {
|
||||
|
@ -275,11 +291,27 @@ public class ClientEventHandler {
|
|||
holdFire = false;
|
||||
}
|
||||
|
||||
if (mode == 1 && stack.getOrCreateTag().getInt("ammo") == 1) {
|
||||
if (mode == 1) {
|
||||
if (stack.getOrCreateTag().getInt("ammo") == 1) {
|
||||
burstFireSize = 1;
|
||||
}
|
||||
|
||||
if (burstFireSize == 1) {
|
||||
cantFireTime = 40;
|
||||
}
|
||||
burstFireSize--;
|
||||
}
|
||||
|
||||
if (stack.is(ModItems.DEVOTION.get())) {
|
||||
customRpm = Math.min(customRpm + 20, 500);
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.SENTINEL.get()) {
|
||||
chamberRot = 1;
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.NTW_20.get()) {
|
||||
actionMove = 1;
|
||||
}
|
||||
|
||||
playGunClientSounds(player);
|
||||
handleClientShoot();
|
||||
|
@ -304,12 +336,18 @@ public class ClientEventHandler {
|
|||
}
|
||||
}
|
||||
|
||||
public static void gunPartMove(float times) {
|
||||
chamberRot = Mth.lerp(0.07 * times, chamberRot, 0);
|
||||
actionMove = Mth.lerp(0.2 * times, actionMove, 0);
|
||||
}
|
||||
|
||||
public static void handleClientShoot() {
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
CompoundTag tag = player.getMainHandItem().getOrCreateTag();
|
||||
if (!player.getMainHandItem().is(ModTags.Items.GUN)) return;
|
||||
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new ShootMessage(gunSpread));
|
||||
fireRecoilTime = 10;
|
||||
|
||||
float gunRecoilY = (float) tag.getDouble("recoil_y") * 10;
|
||||
|
@ -766,7 +804,7 @@ public class ClientEventHandler {
|
|||
float times = (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8);
|
||||
boolean breath = (entity.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).breath;
|
||||
|
||||
breathTime = Mth.lerp(0.08f * times, breathTime, breath ? 1 : 0);
|
||||
breathTime = Mth.lerp(0.2f * times, breathTime, breath ? 1 : 0);
|
||||
}
|
||||
|
||||
private static void handleShockCamera(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) {
|
||||
|
|
|
@ -57,14 +57,14 @@ public class GunEventHandler {
|
|||
private static void handleGunBolt(Player player) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(ModTags.Items.NORMAL_GUN)) {
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") == 1 && stack.getOrCreateTag().getBoolean("need_bolt_action")) {
|
||||
stack.getOrCreateTag().putInt("bolt_action_anim", stack.getOrCreateTag().getInt("bolt_action_time") + 1);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), stack.getOrCreateTag().getInt("bolt_action_time") + 1);
|
||||
playGunBoltSounds(player);
|
||||
}
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
stack.getOrCreateTag().putInt("bolt_action_anim", stack.getOrCreateTag().getInt("bolt_action_anim") - 1);
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.MARLIN.get() && stack.getOrCreateTag().getInt("bolt_action_anim") == 9) {
|
||||
stack.getOrCreateTag().putBoolean("empty", false);
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") == 1) {
|
||||
stack.getOrCreateTag().putBoolean("need_bolt_action", false);
|
||||
}
|
||||
|
@ -271,11 +271,11 @@ public class GunEventHandler {
|
|||
MinecraftForge.EVENT_BUS.post(new ReloadEvent.Pre(player, stack));
|
||||
if (stack.is(ModTags.Items.OPEN_BOLT)) {
|
||||
if (tag.getInt("ammo") == 0) {
|
||||
data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 2);
|
||||
data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 1);
|
||||
stack.getOrCreateTag().putBoolean("is_empty_reloading", true);
|
||||
playGunEmptyReloadSounds(player);
|
||||
} else {
|
||||
data.putInt("ReloadTime", (int) tag.getDouble("normal_reload_time") + 2);
|
||||
data.putInt("ReloadTime", (int) tag.getDouble("normal_reload_time") + 1);
|
||||
stack.getOrCreateTag().putBoolean("is_normal_reloading", true);
|
||||
playGunNormalReloadSounds(player);
|
||||
}
|
||||
|
@ -284,9 +284,6 @@ public class GunEventHandler {
|
|||
stack.getOrCreateTag().putBoolean("is_empty_reloading", true);
|
||||
playGunEmptyReloadSounds(player);
|
||||
}
|
||||
if (stack.getItem() == ModItems.DEVOTION.get()) {
|
||||
tag.putInt("customRpm", 0);
|
||||
}
|
||||
tag.putBoolean("start_reload", false);
|
||||
}
|
||||
|
||||
|
@ -317,7 +314,7 @@ public class GunEventHandler {
|
|||
|
||||
if (stack.getItem() == ModItems.M_60.get()) {
|
||||
if (data.getInt("ReloadTime") == 55) {
|
||||
tag.putBoolean("bullet_chain", false);
|
||||
tag.putBoolean("HideBulletChain", false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -506,16 +503,16 @@ public class GunEventHandler {
|
|||
if (tag.getDouble("prepare_load_time") != 0 && tag.getInt("ammo") == 0) {
|
||||
playGunPrepareLoadReloadSounds(player);
|
||||
tag.putInt("prepare_load", (int) tag.getDouble("prepare_load_time") + 1);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_load_time") + 1);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_load_time"));
|
||||
} else if (tag.getDouble("prepare_empty") != 0 && tag.getInt("ammo") == 0) {
|
||||
// 此处判断空仓换弹,如莫辛纳甘
|
||||
playGunEmptyPrepareSounds(player);
|
||||
tag.putInt("prepare", (int) tag.getDouble("prepare_empty") + 1);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_empty") + 1);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_empty"));
|
||||
} else {
|
||||
playGunPrepareReloadSounds(player);
|
||||
tag.putInt("prepare", (int) tag.getDouble("prepare_time") + 1);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_time") + 1);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_time"));
|
||||
}
|
||||
|
||||
tag.putBoolean("force_stop", false);
|
||||
|
@ -635,11 +632,15 @@ public class GunEventHandler {
|
|||
// 三阶段
|
||||
if ((tag.getInt("iterative") == 1 && tag.getInt("reload_stage") == 3) || tag.getBoolean("force_stage3_start")) {
|
||||
tag.putBoolean("force_stage3_start", false);
|
||||
tag.putDouble("finish", (int) tag.getDouble("finish_time") + 2);
|
||||
tag.putInt("finish", (int) tag.getDouble("finish_time") + 2);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("finish_time") + 2);
|
||||
playGunEndReloadSounds(player);
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.MARLIN.get() && tag.getInt("finish") == 10) {
|
||||
tag.putBoolean("empty", false);
|
||||
}
|
||||
|
||||
// 三阶段结束
|
||||
if (tag.getInt("finish") == 1) {
|
||||
tag.putInt("reload_stage", 0);
|
||||
|
|
|
@ -190,10 +190,6 @@ public class PlayerEventHandler {
|
|||
* 判断玩家是否在奔跑
|
||||
*/
|
||||
private static void handlePlayerSprint(Player player) {
|
||||
if (player.getMainHandItem().getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
player.getPersistentData().putDouble("noRun", 10);
|
||||
}
|
||||
|
||||
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).holdFire) {
|
||||
player.getPersistentData().putDouble("noRun", 10);
|
||||
}
|
||||
|
|
|
@ -229,6 +229,7 @@ public class ModSounds {
|
|||
public static final RegistryObject<SoundEvent> MARLIN_PREPARE = REGISTRY.register("marlin_prepare", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_prepare")));
|
||||
public static final RegistryObject<SoundEvent> MARLIN_LOOP = REGISTRY.register("marlin_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_loop")));
|
||||
public static final RegistryObject<SoundEvent> MARLIN_END = REGISTRY.register("marlin_end", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_end")));
|
||||
public static final RegistryObject<SoundEvent> MARLIN_BOLT = REGISTRY.register("marlin_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "marlin_bolt")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> M_870_FIRE_1P = REGISTRY.register("m_870_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> M_870_FIRE_3P = REGISTRY.register("m_870_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_fire_3p")));
|
||||
|
@ -236,6 +237,7 @@ public class ModSounds {
|
|||
public static final RegistryObject<SoundEvent> M_870_VERYFAR = REGISTRY.register("m_870_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> M_870_PREPARE_LOAD = REGISTRY.register("m_870_prepare_load", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_prepare_load")));
|
||||
public static final RegistryObject<SoundEvent> M_870_LOOP = REGISTRY.register("m_870_loop", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_loop")));
|
||||
public static final RegistryObject<SoundEvent> M_870_BOLT = REGISTRY.register("m_870_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "m_870_bolt")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> GLOCK_17_FIRE_1P = REGISTRY.register("glock_17_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "glock_17_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_17_FIRE_3P = REGISTRY.register("glock_17_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "glock_17_fire_3p")));
|
||||
|
|
|
@ -65,10 +65,6 @@ public abstract class GunItem extends Item {
|
|||
itemstack.getOrCreateTag().putBoolean("draw", false);
|
||||
}
|
||||
|
||||
if (itemstack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
itemstack.getOrCreateTag().putInt("fire_animation", (itemstack.getOrCreateTag().getInt("fire_animation") - 1));
|
||||
}
|
||||
|
||||
handleGunPerks(itemstack);
|
||||
handleGunAttachment(itemstack);
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.handgun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.Glock17ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
|
@ -73,10 +73,6 @@ public class Glock17Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty"));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.handgun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.Glock18ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
|
@ -74,10 +74,6 @@ public class Glock18Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty"));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.handgun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.M1911ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
|
@ -67,21 +67,6 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
transformType = type;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private PlayState fireAnimPredicate(AnimationState<M1911Item> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m1911.fire"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.idle"));
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<M1911Item> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
|
@ -93,27 +78,25 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_normal_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m1911.reload_normal"));
|
||||
}
|
||||
|
||||
if (player.isSprinting() && player.onGround()
|
||||
&& player.getPersistentData().getDouble("noRun") == 0
|
||||
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) {
|
||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run_fast"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m1911.run_fast"));
|
||||
} else {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m1911.run"));
|
||||
}
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.idle"));
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m1911.idle"));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
var fireAnimController = new AnimationController<>(this, "fireAnimController", 0, this::fireAnimPredicate);
|
||||
data.add(fireAnimController);
|
||||
var idleController = new AnimationController<>(this, "idleController", 2, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.handgun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.TracheliumItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -83,10 +83,6 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 1) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload"));
|
||||
}
|
||||
|
|
|
@ -80,12 +80,6 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
var tag = stack.getOrCreateTag();
|
||||
|
||||
if (tag.getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.javelin.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.javelin.reload"));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.launcher;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.M79ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
|
@ -82,10 +82,6 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m79.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m79.reload"));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.launcher;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.RpgItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
|
@ -79,9 +79,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
var tag = stack.getOrCreateTag();
|
||||
|
||||
if (tag.getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.rpg.fire"));
|
||||
}
|
||||
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.rpg.reload"));
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.machinegun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.M60ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
|
@ -139,7 +139,7 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
itemstack.getOrCreateTag().putBoolean("draw", false);
|
||||
|
||||
if (itemstack.getOrCreateTag().getInt("ammo") <= 5) {
|
||||
itemstack.getOrCreateTag().putBoolean("bullet_chain", true);
|
||||
itemstack.getOrCreateTag().putBoolean("HideBulletChain", true);
|
||||
}
|
||||
}
|
||||
super.inventoryTick(itemstack, level, entity, slot, selected);
|
||||
|
|
|
@ -20,13 +20,11 @@ import net.minecraft.resources.ResourceLocation;
|
|||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
|
@ -70,21 +68,16 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<MarlinItem> event) {
|
||||
private PlayState fireAnimPredicate(AnimationState<MarlinItem> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (transformType != null && transformType.firstPerson()) {
|
||||
if (stack.getOrCreateTag().getDouble("marlin_animation_time") > 0 && !stack.getOrCreateTag().getBoolean("fastfiring")) {
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.shift"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getDouble("marlin_animation_time") > 0 && stack.getOrCreateTag().getBoolean("fastfiring")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.shift2"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("reload_stage") == 1 && stack.getOrCreateTag().getDouble("prepare") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.prepare"));
|
||||
}
|
||||
|
@ -101,6 +94,18 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.marlin.finish"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.marlin.idle"));
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<MarlinItem> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (transformType != null && transformType.firstPerson()) {
|
||||
|
||||
|
||||
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) {
|
||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.marlin.run_fast"));
|
||||
|
@ -117,6 +122,8 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate);
|
||||
data.add(fireAnimController);
|
||||
var idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
@ -126,18 +133,12 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
|
||||
super.inventoryTick(itemstack, world, entity, slot, selected);
|
||||
var tag = itemstack.getOrCreateTag();
|
||||
if (tag.getDouble("marlin_animation_time") > 0) {
|
||||
tag.putDouble("marlin_animation_time", tag.getDouble("marlin_animation_time") - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(ModSounds.MARLIN_LOOP.get(), ModSounds.MARLIN_PREPARE.get(), ModSounds.MARLIN_END.get());
|
||||
return Set.of(ModSounds.MARLIN_LOOP.get(),
|
||||
ModSounds.MARLIN_PREPARE.get(),
|
||||
ModSounds.MARLIN_END.get(),
|
||||
ModSounds.MARLIN_BOLT.get());
|
||||
}
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.shotgun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.Aa12ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.RarityTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -84,10 +84,6 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aa12.reload_empty"));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.shotgun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.M870ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
|
@ -70,13 +70,13 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<M870Item> event) {
|
||||
private PlayState fireAnimPredicate(AnimationState<M870Item> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getDouble("fire_animation") > 0 && stack.getOrCreateTag().getDouble("fire_animation") < 15) {
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.shift"));
|
||||
}
|
||||
|
||||
|
@ -100,6 +100,15 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m870.finish"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m870.idle"));
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<M870Item> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) {
|
||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m870.run_fast"));
|
||||
|
@ -114,6 +123,8 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate);
|
||||
data.add(fireAnimController);
|
||||
var idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
@ -130,7 +141,9 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(ModSounds.M_870_PREPARE_LOAD.get(), ModSounds.M_870_LOOP.get());
|
||||
return Set.of(ModSounds.M_870_PREPARE_LOAD.get(),
|
||||
ModSounds.M_870_LOOP.get(),
|
||||
ModSounds.M_870_BOLT.get());
|
||||
}
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.sniper;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.Ntw20Renderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,7 +12,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.RarityTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
|
@ -83,10 +83,6 @@ public class Ntw20Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.shift"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ntw_20.reload_empty"));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.sniper;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.SentinelItemRenderer;
|
||||
import net.mcreator.superbwarfare.energy.ItemEnergyProvider;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
|
@ -12,7 +13,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.RarityTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -196,10 +196,6 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (tag.getDouble("chamber_rot") > 0) {
|
||||
tag.putDouble("chamber_rot", tag.getDouble("chamber_rot") - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.special;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.TaserItemRenderer;
|
||||
import net.mcreator.superbwarfare.energy.ItemEnergyProvider;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
|
@ -13,7 +14,6 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
|
@ -126,10 +126,6 @@ public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getInt("fire_animation") > 1) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.taser.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.taser.reload"));
|
||||
}
|
||||
|
|
|
@ -70,6 +70,8 @@ public class FireMessage {
|
|||
return;
|
||||
}
|
||||
|
||||
handleGunBolt(player, player.getMainHandItem());
|
||||
|
||||
if (type == 0) {
|
||||
handlePlayerShoot(player);
|
||||
player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
|
@ -88,10 +90,6 @@ public class FireMessage {
|
|||
handleBowShoot(player);
|
||||
}
|
||||
|
||||
if (player.getMainHandItem().getItem() == ModItems.DEVOTION.get()) {
|
||||
player.getMainHandItem().getOrCreateTag().putDouble("customRpm", 0);
|
||||
}
|
||||
|
||||
if (player.getMainHandItem().getItem() == ModItems.JAVELIN.get()) {
|
||||
var handItem = player.getMainHandItem();
|
||||
var tag = handItem.getOrCreateTag();
|
||||
|
@ -157,11 +155,12 @@ public class FireMessage {
|
|||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 栓动武器左键手动拉栓
|
||||
if (tag.getInt("bolt_action_time") > 0 && tag.getInt("ammo") > 0 && tag.getInt("bolt_action_anim") == 0) {
|
||||
if (!player.getCooldowns().isOnCooldown(handItem.getItem()) && handItem.getOrCreateTag().getBoolean("need_bolt_action")) {
|
||||
handItem.getOrCreateTag().putInt("bolt_action_anim", handItem.getOrCreateTag().getInt("bolt_action_time") + 1);
|
||||
private static void handleGunBolt(Player player, ItemStack stack) {
|
||||
if (stack.getOrCreateTag().getInt("bolt_action_time") > 0 && stack.getOrCreateTag().getInt("ammo") > 0 && stack.getOrCreateTag().getInt("bolt_action_anim") == 0) {
|
||||
if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getBoolean("need_bolt_action")) {
|
||||
stack.getOrCreateTag().putInt("bolt_action_anim", stack.getOrCreateTag().getInt("bolt_action_time") + 1);
|
||||
GunEventHandler.playGunBoltSounds(player);
|
||||
}
|
||||
}
|
||||
|
@ -225,7 +224,6 @@ public class FireMessage {
|
|||
player.getCooldowns().addCooldown(player.getMainHandItem().getItem(), 7);
|
||||
player.getMainHandItem().getOrCreateTag().putInt("arrow_empty", 7);
|
||||
player.getMainHandItem().getOrCreateTag().putDouble("power", 0);
|
||||
stack.getOrCreateTag().putInt("fire_animation", 2);
|
||||
|
||||
int count = 0;
|
||||
for (var inv : player.getInventory().items) {
|
||||
|
@ -372,7 +370,6 @@ public class FireMessage {
|
|||
level.addFreshEntity(taserBulletProjectile);
|
||||
}
|
||||
|
||||
stack.getOrCreateTag().putInt("fire_animation", 4);
|
||||
stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1));
|
||||
|
||||
stack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
||||
|
@ -428,7 +425,6 @@ public class FireMessage {
|
|||
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.M_79_VERYFAR.get(), SoundSource.PLAYERS, 10, 1);
|
||||
}
|
||||
|
||||
stack.getOrCreateTag().putInt("fire_animation", 2);
|
||||
stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1));
|
||||
|
||||
if (player.level() instanceof ServerLevel && player instanceof ServerPlayer serverPlayer) {
|
||||
|
@ -486,7 +482,6 @@ public class FireMessage {
|
|||
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.RPG_VERYFAR.get(), SoundSource.PLAYERS, 10, 1);
|
||||
}
|
||||
|
||||
tag.putInt("fire_animation", 2);
|
||||
tag.putInt("ammo", tag.getInt("ammo") - 1);
|
||||
|
||||
if (player.level() instanceof ServerLevel && player instanceof ServerPlayer serverPlayer) {
|
||||
|
@ -546,7 +541,6 @@ public class FireMessage {
|
|||
serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.JAVELIN_FAR.get(), SoundSource.PLAYERS, 10, 1);
|
||||
}
|
||||
|
||||
tag.putInt("fire_animation", 2);
|
||||
tag.putInt("ammo", tag.getInt("ammo") - 1);
|
||||
|
||||
if (player.level() instanceof ServerLevel && player instanceof ServerPlayer serverPlayer) {
|
||||
|
|
|
@ -8,14 +8,12 @@ import net.mcreator.superbwarfare.network.ModVariables;
|
|||
import net.mcreator.superbwarfare.perk.AmmoPerk;
|
||||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.ParticleTool;
|
||||
import net.mcreator.superbwarfare.tools.SoundTool;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -31,33 +29,30 @@ import static net.mcreator.superbwarfare.event.GunEventHandler.playGunSounds;
|
|||
public class ShootMessage {
|
||||
|
||||
private final double spread;
|
||||
private final int burstSize;
|
||||
|
||||
public ShootMessage(double spread, int burstSize) {
|
||||
public ShootMessage(double spread) {
|
||||
this.spread = spread;
|
||||
this.burstSize = burstSize;
|
||||
}
|
||||
|
||||
public static ShootMessage decode(FriendlyByteBuf buffer) {
|
||||
return new ShootMessage(buffer.readDouble(), buffer.readInt());
|
||||
return new ShootMessage(buffer.readDouble());
|
||||
}
|
||||
|
||||
public static void encode(ShootMessage message, FriendlyByteBuf buffer) {
|
||||
buffer.writeDouble(message.spread);
|
||||
buffer.writeInt(message.burstSize);
|
||||
}
|
||||
|
||||
public static void handler(ShootMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
|
||||
NetworkEvent.Context context = contextSupplier.get();
|
||||
context.enqueueWork(() -> {
|
||||
if (context.getSender() != null) {
|
||||
pressAction(context.getSender(), message.spread, message.burstSize);
|
||||
pressAction(context.getSender(), message.spread);
|
||||
}
|
||||
});
|
||||
context.setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void pressAction(Player player, double spared, int burstSize) {
|
||||
public static void pressAction(Player player, double spared) {
|
||||
Level level = player.level();
|
||||
|
||||
if (!level.isLoaded(player.blockPosition())) {
|
||||
|
@ -66,23 +61,9 @@ public class ShootMessage {
|
|||
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (stack.is(ModTags.Items.NORMAL_GUN)) {
|
||||
|
||||
double rpm = stack.getOrCreateTag().getDouble("rpm") + stack.getOrCreateTag().getInt("customRpm");
|
||||
|
||||
int coolDownTick = (int) Math.ceil(20 / (rpm / 60));
|
||||
int mode = GunsTool.getGunIntTag(stack, "FireMode");
|
||||
|
||||
int projectileAmount = (int) stack.getOrCreateTag().getDouble("projectile_amount");
|
||||
|
||||
if (stack.getOrCreateTag().getInt("ammo") > 0) {
|
||||
int singleInterval = 0;
|
||||
int burstCooldown = 0;
|
||||
|
||||
if (mode == 0) {
|
||||
singleInterval = coolDownTick;
|
||||
} else if (mode == 1) {
|
||||
burstCooldown = burstSize == 0 ? coolDownTick + 3 : 0;
|
||||
}
|
||||
|
||||
/*
|
||||
空仓挂机
|
||||
|
@ -99,16 +80,11 @@ public class ShootMessage {
|
|||
}
|
||||
|
||||
stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1));
|
||||
stack.getOrCreateTag().putInt("fire_animation", coolDownTick);
|
||||
|
||||
stack.getOrCreateTag().putDouble("empty", 1);
|
||||
|
||||
if (stack.getItem() == ModItems.M_60.get()) {
|
||||
stack.getOrCreateTag().putBoolean("bullet_chain", true);
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.DEVOTION.get()) {
|
||||
stack.getOrCreateTag().putInt("customRpm", Mth.clamp(stack.getOrCreateTag().getInt("customRpm") + 20, 0, 500));
|
||||
if (stack.getItem() == ModItems.M_60.get() && stack.getOrCreateTag().getInt("ammo") <= 5) {
|
||||
stack.getOrCreateTag().putBoolean("HideBulletChain", true);
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.ABEKIRI.get()) {
|
||||
|
@ -123,25 +99,8 @@ public class ShootMessage {
|
|||
stack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
|
||||
iEnergyStorage -> iEnergyStorage.extractEnergy(3000, false)
|
||||
);
|
||||
stack.getOrCreateTag().putDouble("chamber_rot", 20);
|
||||
}
|
||||
|
||||
int customCoolDown = 0;
|
||||
|
||||
if (stack.getItem() == ModItems.MARLIN.get()) {
|
||||
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zoom) {
|
||||
stack.getOrCreateTag().putDouble("marlin_animation_time", 15);
|
||||
stack.getOrCreateTag().putBoolean("fastfiring", false);
|
||||
customCoolDown = 5;
|
||||
} else {
|
||||
stack.getOrCreateTag().putDouble("marlin_animation_time", 10);
|
||||
stack.getOrCreateTag().putBoolean("fastfiring", true);
|
||||
}
|
||||
}
|
||||
|
||||
int cooldown = burstCooldown + singleInterval + customCoolDown;
|
||||
player.getCooldowns().addCooldown(stack.getItem(), cooldown);
|
||||
|
||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
|
||||
for (int index0 = 0; index0 < (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug ? 1 : projectileAmount); index0++) {
|
||||
|
@ -188,8 +147,6 @@ public class ShootMessage {
|
|||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
}
|
||||
|
||||
tag.putInt("fire_animation", 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.glock.idle": {
|
||||
"animation.m1911.idle": {
|
||||
"loop": true,
|
||||
"animation_length": 2
|
||||
},
|
||||
"animation.glock.run": {
|
||||
"animation.m1911.run": {
|
||||
"loop": true,
|
||||
"animation_length": 0.8,
|
||||
"bones": {
|
||||
|
@ -80,7 +80,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"animation.glock.run_fast": {
|
||||
"animation.m1911.run_fast": {
|
||||
"loop": true,
|
||||
"animation_length": 0.7,
|
||||
"bones": {
|
||||
|
@ -158,48 +158,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"animation.m1911.fire": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.1667,
|
||||
"override_previous_animation": true,
|
||||
"bones": {
|
||||
"lun": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0417": {
|
||||
"vector": [0, 0, -22.5]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0417": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"roll": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-5, 0, 0]
|
||||
},
|
||||
"0.0833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hammer": {
|
||||
"rotation": {
|
||||
"vector": [60, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.glock.reload_normal": {
|
||||
"animation.m1911.reload_normal": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 1.4,
|
||||
"bones": {
|
||||
|
@ -278,55 +237,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [2, -2, 1],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [2.5, 3, -2],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [-1, -2, 1],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.375": {
|
||||
"vector": [0, 2, -0.8]
|
||||
},
|
||||
"0.475": {
|
||||
"vector": [-0.67, -0.67, 0.4]
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [0.5, 0, 1.2],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.875": {
|
||||
"vector": [-0.1, 0, 2]
|
||||
},
|
||||
"0.975": {
|
||||
"vector": [0, 0, 1.5],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"1.025": {
|
||||
"vector": [1, 1, -2.5],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"1.1": {
|
||||
"vector": [-0.5, -0.5, 1.5]
|
||||
},
|
||||
"1.2": {
|
||||
"vector": [0.5, 0.5, -1.17]
|
||||
},
|
||||
"1.3": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": {
|
||||
"0.25": {
|
||||
|
@ -656,6 +566,55 @@
|
|||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [2, -2, 1],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [2.5, 3, -2],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [-1, -2, 1],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.375": {
|
||||
"vector": [0, 2, -0.8]
|
||||
},
|
||||
"0.475": {
|
||||
"vector": [-0.67, -0.67, 0.4]
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [0.5, 0, 1.2],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.875": {
|
||||
"vector": [-0.1, 0, 2]
|
||||
},
|
||||
"0.975": {
|
||||
"vector": [0, 0, 1.5],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"1.025": {
|
||||
"vector": [1, 1, -2.5],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"1.1": {
|
||||
"vector": [-0.5, -0.5, 1.5]
|
||||
},
|
||||
"1.2": {
|
||||
"vector": [0.5, 0.5, -1.17]
|
||||
},
|
||||
"1.3": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -193,62 +193,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"animation.m870.draw": {
|
||||
"animation_length": 1,
|
||||
"bones": {
|
||||
"main": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [27.21312, -47.42646, -2.0218]
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [12.5, -15, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [3.48268, 0.40464, 8.20687]
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [0, 0, -2]
|
||||
},
|
||||
"0.7083": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [3, -17.3, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, -1.65]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0.93]
|
||||
},
|
||||
"0.7083": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0.25, -0.5, 0.5],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutSine"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.m870.prepare": {
|
||||
"animation_length": 0.75,
|
||||
"bones": {
|
||||
|
@ -1191,38 +1135,33 @@
|
|||
}
|
||||
},
|
||||
"animation.m870.shift": {
|
||||
"animation_length": 0.675,
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 1,
|
||||
"bones": {
|
||||
"main": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [-12.70704, -2.00287, -6.82365]
|
||||
"0.1": {
|
||||
"vector": [-0.90661, -0.7335, -2.65556]
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [-4.73303, -1.97055, -6.0739]
|
||||
},
|
||||
"0.225": {
|
||||
"vector": [-4.60652, -1.80399, -2.32556]
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [-7.39899, -0.87335, 6.1433],
|
||||
"0.15": {
|
||||
"vector": [-1.39899, -0.87335, 6.1433],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.375": {
|
||||
"vector": [-5.75249, -0.05015, 7.75233],
|
||||
"0.225": {
|
||||
"vector": [-0.75249, -0.05015, 7.75233],
|
||||
"easing": "easeInCirc"
|
||||
},
|
||||
"0.475": {
|
||||
"vector": [-3.15429, -0.87108, -4.64335],
|
||||
"0.325": {
|
||||
"vector": [-0.15429, -0.87108, -4.64335],
|
||||
"easing": "easeOutQuad"
|
||||
},
|
||||
"0.575": {
|
||||
"0.425": {
|
||||
"vector": [-1.60854, 0.22225, 3.17569]
|
||||
},
|
||||
"0.675": {
|
||||
"0.525": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -1230,30 +1169,24 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [-0.375, 0.1, 3.575]
|
||||
"0.075": {
|
||||
"vector": [0, 0, -0.25]
|
||||
},
|
||||
"0.125": {
|
||||
"vector": [-0.63, -0.4, 1.375]
|
||||
"0.175": {
|
||||
"vector": [-0.155, -0.475, 0.45],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-0.39, -0.44, 1.06]
|
||||
"0.275": {
|
||||
"vector": [-0.155, -0.475, 0.45],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.325": {
|
||||
"vector": [-0.155, -0.475, 2.95],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.425": {
|
||||
"vector": [-0.155, -0.475, 2.95],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.475": {
|
||||
"vector": [-0.06, -0.19, 0.7]
|
||||
},
|
||||
"0.55": {
|
||||
"0.4": {
|
||||
"vector": [0, 0, -0.4]
|
||||
},
|
||||
"0.675": {
|
||||
"0.525": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
|
@ -1263,10 +1196,10 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.525": {
|
||||
"0.375": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -1274,16 +1207,16 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.275": {
|
||||
"0.125": {
|
||||
"vector": [0, 0, 2.5]
|
||||
},
|
||||
"0.45": {
|
||||
"0.3": {
|
||||
"vector": [0, 0, 2.5]
|
||||
},
|
||||
"0.525": {
|
||||
"0.375": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
|
@ -1323,19 +1256,19 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.175": {
|
||||
"0.025": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"0.1": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.425": {
|
||||
"0.275": {
|
||||
"vector": [0, 200, 0]
|
||||
},
|
||||
"0.45": {
|
||||
"0.3": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -1343,105 +1276,98 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.175": {
|
||||
"0.025": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"0.05": {
|
||||
"vector": [0, 1.3, -0.2]
|
||||
},
|
||||
"0.25": {
|
||||
"0.1": {
|
||||
"vector": [0, 1.3, 1.5]
|
||||
},
|
||||
"0.275": {
|
||||
"0.125": {
|
||||
"vector": [-3.02654, 1.74663, 1.62913]
|
||||
},
|
||||
"0.3": {
|
||||
"0.15": {
|
||||
"vector": [-5.37048, 1.67247, 1.20688]
|
||||
},
|
||||
"0.325": {
|
||||
"0.175": {
|
||||
"vector": [-7.70182, 1.64131, 1.28384]
|
||||
},
|
||||
"0.35": {
|
||||
"0.2": {
|
||||
"vector": [-9.97823, 1.51902, 1.84468]
|
||||
},
|
||||
"0.375": {
|
||||
"0.225": {
|
||||
"vector": [-12.48333, 1.10912, 2.30914]
|
||||
},
|
||||
"0.4": {
|
||||
"0.25": {
|
||||
"vector": [-14.74357, 2.32811, 3.06307]
|
||||
},
|
||||
"0.425": {
|
||||
"0.275": {
|
||||
"vector": [-1508.57, 2.02, 2.78]
|
||||
},
|
||||
"0.45": {
|
||||
"0.3": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"scale": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
"0.375": {
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [-2, -1, -2]
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
"0.1": {
|
||||
"vector": [-1.5, 0.5, 1]
|
||||
"0.225": {
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [-1, -0.25, -0.5]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-0.94, -0.24, 0]
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [-0.71, -1.5, 2]
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-0.59, 0.3, 0.5]
|
||||
},
|
||||
"0.425": {
|
||||
"vector": [-0.35, -0.4, -1.5]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [-0.15, 0.3, 0.64]
|
||||
},
|
||||
"0.6": {
|
||||
"0.25": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"position": {
|
||||
"0.2": {
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.125": {
|
||||
"vector": [0, 0, 2.5]
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [0, 0, 2.5]
|
||||
},
|
||||
"0.375": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.075": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.15": {
|
||||
"vector": [-0.71, -1.5, 2]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-0.59, 0.3, 0.5]
|
||||
},
|
||||
"0.275": {
|
||||
"vector": [0, 0, 2.5]
|
||||
"vector": [-0.35, -0.4, -1.5]
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-0.15, 0.3, 0.64]
|
||||
},
|
||||
"0.45": {
|
||||
"vector": [0, 0, 2.5]
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.0": {
|
||||
"effect": "m_870_bolt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.m870.finish": {
|
||||
|
|
|
@ -3,86 +3,7 @@
|
|||
"animations": {
|
||||
"animation.marlin.idle": {
|
||||
"loop": true,
|
||||
"animation_length": 2,
|
||||
"bones": {
|
||||
"bullet": {
|
||||
"scale": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.marlin.draw": {
|
||||
"animation_length": 1,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [27.21312, -47.42646, -2.0218]
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [12.5, -15, 0]
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [3.48268, 0.40464, 8.20687]
|
||||
},
|
||||
"0.6": {
|
||||
"vector": [0, 0, -2]
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [3, -17.3, 0]
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [0, 0, -1.65]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0.93]
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0.25, -0.5, 0.5],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.6": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
}
|
||||
}
|
||||
}
|
||||
"animation_length": 2
|
||||
},
|
||||
"animation.marlin.run": {
|
||||
"loop": true,
|
||||
|
@ -130,11 +51,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"bullet": {
|
||||
"scale": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
|
@ -153,14 +69,6 @@
|
|||
"vector": [-0.3, -0.3, 0.3]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -301,83 +209,28 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"animation.marlin.fire": {
|
||||
"animation_length": 0.1083,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"bullet": {
|
||||
"scale": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.marlin.fire2": {
|
||||
"animation_length": 0.1083,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"bullet": {
|
||||
"scale": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.marlin.shift": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.6,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0667": {
|
||||
"vector": [-0.07669, 0.14268, -5.6755]
|
||||
"0.1167": {
|
||||
"vector": [-0.93779, 0.20262, 8.99033]
|
||||
},
|
||||
"0.1333": {
|
||||
"vector": [-0.20051, 0.51542, 4.52219],
|
||||
"easing": "easeInOutSine"
|
||||
"0.1833": {
|
||||
"vector": [-0.03704, 0, -3.62963]
|
||||
},
|
||||
"0.2167": {
|
||||
"vector": [-2.16, 0.41, 3.62],
|
||||
"easing": "easeInSine"
|
||||
"0.3": {
|
||||
"vector": [-2.69136, 0, -2.41975]
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [-0.44, 0.27, 2.41],
|
||||
"easing": "easeOutSine"
|
||||
"0.4167": {
|
||||
"vector": [2.0388, 0, -0.8642]
|
||||
},
|
||||
"0.5667": {
|
||||
"0.5333": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -385,23 +238,22 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.1": {
|
||||
"vector": [-0.4, -0.2, 0.6],
|
||||
"easing": "easeInElastic"
|
||||
"0.1333": {
|
||||
"vector": [0, -0.6, 0.5]
|
||||
},
|
||||
"0.1833": {
|
||||
"vector": [-0.42, -0.46, -0.27],
|
||||
"easing": "easeInElastic"
|
||||
"0.2167": {
|
||||
"vector": [0, -0.43, -1.06]
|
||||
},
|
||||
"0.2667": {
|
||||
"vector": [-0.28, -0.11, -0.18],
|
||||
"easing": "easeInElastic"
|
||||
"0.3167": {
|
||||
"vector": [0.02682, -0.98905, -1.45462]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [-0.14, 0.1, 0.41],
|
||||
"easing": "easeInElastic"
|
||||
"0.3833": {
|
||||
"vector": [0, -0.16, 1.23]
|
||||
},
|
||||
"0.5667": {
|
||||
"0.4667": {
|
||||
"vector": [0, 0, -0.5]
|
||||
},
|
||||
"0.5333": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
|
@ -411,15 +263,23 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0833": {
|
||||
"0.1167": {
|
||||
"vector": [-5.322, 11.403, 4.10285],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-20.32, 11.4, 4.1],
|
||||
"easing": "easeInElastic"
|
||||
"0.1333": {
|
||||
"vector": [-5.322, 11.403, 4.10285],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.4": {
|
||||
"0.2167": {
|
||||
"vector": [-20.32, 11.4, 4.1],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-20.32, 11.4, 4.1],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.3833": {
|
||||
"vector": [-5.322, 11.403, 4.10285],
|
||||
"easing": "easeInOutCubic"
|
||||
},
|
||||
|
@ -431,15 +291,23 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0833": {
|
||||
"0.1167": {
|
||||
"vector": [-1.9, -0.1, -0.1],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-1.9, -0.1, -2.3],
|
||||
"easing": "easeInElastic"
|
||||
"0.1333": {
|
||||
"vector": [-1.9, -0.1, -0.1],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.4": {
|
||||
"0.2167": {
|
||||
"vector": [-1.9, -0.1, -2.3],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-1.9, -0.1, -2.3],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.3833": {
|
||||
"vector": [-1.9, -0.1, -0.1],
|
||||
"easing": "easeInOutCubic"
|
||||
},
|
||||
|
@ -450,14 +318,21 @@
|
|||
},
|
||||
"ganggan": {
|
||||
"rotation": {
|
||||
"0.0833": {
|
||||
"0.1167": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-60, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
"0.1333": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4": {
|
||||
"0.2167": {
|
||||
"vector": [-60, 0, 0],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-60, 0, 0],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.3833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
|
@ -473,14 +348,21 @@
|
|||
},
|
||||
"huakuai": {
|
||||
"position": {
|
||||
"0.0833": {
|
||||
"0.1167": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [0, 0, 1.9],
|
||||
"easing": "easeInElastic"
|
||||
"0.1333": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4": {
|
||||
"0.2167": {
|
||||
"vector": [0, 0, 1.9],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [0, 0, 1.9],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.3833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
|
@ -552,9 +434,6 @@
|
|||
}
|
||||
},
|
||||
"scale": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.1": {
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
|
@ -586,255 +465,11 @@
|
|||
"easing": "easeInElastic"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.marlin.shift2": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.5,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"sound_effects": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [-0.07669, 0.14268, -5.6755]
|
||||
},
|
||||
"0.1333": {
|
||||
"vector": [-0.20051, 0.51542, 4.52219],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-2.16, 0.41, 3.62],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.2833": {
|
||||
"vector": [-0.44, 0.27, 2.41],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.45": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.1": {
|
||||
"vector": [-0.4, -0.2, 0.6],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [-0.42, -0.46, -0.27],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.2333": {
|
||||
"vector": [-0.28, -0.11, -0.18],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.3167": {
|
||||
"vector": [-0.14, 0.1, 0.41],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.45": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0667": {
|
||||
"vector": [-5.322, 11.403, 4.10285],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [-20.32, 11.4, 4.1],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.2833": {
|
||||
"vector": [-5.322, 11.403, 4.10285],
|
||||
"easing": "easeInOutCubic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0667": {
|
||||
"vector": [-1.9, -0.1, -0.1],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [-1.9, -0.1, -2.3],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.2833": {
|
||||
"vector": [-1.9, -0.1, -0.1],
|
||||
"easing": "easeInOutCubic"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"ganggan": {
|
||||
"rotation": {
|
||||
"0.0667": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [-60, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.2833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bullethead": {
|
||||
"position": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"scale": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"huakuai": {
|
||||
"position": {
|
||||
"0.0667": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [0, 0, 1.9],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.2833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0667": {
|
||||
"vector": [1, 0.5, 1]
|
||||
},
|
||||
"0.1833": {
|
||||
"vector": [1, -2, -2],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [1, 0.5, 1]
|
||||
},
|
||||
"0.45": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bullet": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0667": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.1167": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [0, 200, 0]
|
||||
},
|
||||
"0.2833": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0667": {
|
||||
"vector": [0, 0, -0.2]
|
||||
},
|
||||
"0.1167": {
|
||||
"vector": [0, 0, 1.5]
|
||||
},
|
||||
"0.15": {
|
||||
"vector": [-2.32654, 0.7466, 1.92913]
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [-4.27048, 1.1725, 2.40688]
|
||||
},
|
||||
"0.1833": {
|
||||
"vector": [-5.89, 1.36, 2.95]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-7.50182, 1.3413, 3.68384]
|
||||
},
|
||||
"0.2167": {
|
||||
"vector": [-8.97823, 1.019, 4.34468]
|
||||
},
|
||||
"0.2333": {
|
||||
"vector": [-10.23, 0.46, 5.08]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-1508.57, 2.02, 2.78]
|
||||
},
|
||||
"0.2667": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"scale": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0333": {
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [1, 1, 1]
|
||||
},
|
||||
"0.2667": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.45": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
},
|
||||
"position": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
}
|
||||
"effect": "marlin_end"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -850,8 +485,8 @@
|
|||
"0.0417": {
|
||||
"vector": [-7.64829, -3.7641, 21.26762]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-18.239, 20.14826, 45.50003]
|
||||
"0.125": {
|
||||
"vector": [-17.17955, 5.85094, 50.17078]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-19.51825, 23.01719, 49.32139],
|
||||
|
@ -862,41 +497,36 @@
|
|||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.125": {
|
||||
"vector": [-0.18, -0.21, 0.32]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-0.6, 3.38, 1.1],
|
||||
"easing": "easeInOutSine"
|
||||
"easing": "easeInSine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0833": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
"0.125": {
|
||||
"vector": [-29.5, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [-69.73114, -16.81988, 61.84372],
|
||||
"easing": "linear"
|
||||
"vector": [-45, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0833": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
},
|
||||
"0.1333": {
|
||||
"vector": [3.71625, 2.71032, -0.24509]
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [3.91675, 3.95006, 0.32566]
|
||||
"0.125": {
|
||||
"vector": [4.23155, 4.59678, -0.20118]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [3.68428, 6.19247, 0.90079],
|
||||
"easing": "linear"
|
||||
"vector": [5.5774, 7.76512, -0.33163]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1038,22 +668,18 @@
|
|||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-72.73114, -16.81988, 61.84372],
|
||||
"easing": "linear"
|
||||
"vector": [-45, 0, 0]
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [-72.73114, -16.81988, 61.84372],
|
||||
"easing": "linear"
|
||||
"0.825": {
|
||||
"vector": [-45, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [3.68428, 6.19247, 0.90079],
|
||||
"easing": "linear"
|
||||
"vector": [5.5774, 7.76512, -0.33163]
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [3.68428, 6.19247, 0.90079],
|
||||
"easing": "linear"
|
||||
"0.825": {
|
||||
"vector": [5.5774, 7.76512, -0.33163]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1285,22 +911,18 @@
|
|||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-72.73114, -16.81988, 61.84372],
|
||||
"easing": "linear"
|
||||
"vector": [-45, 0, 0]
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [-72.73114, -16.81988, 61.84372],
|
||||
"easing": "linear"
|
||||
"0.825": {
|
||||
"vector": [-45, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [3.68428, 6.19247, 0.90079],
|
||||
"easing": "linear"
|
||||
"vector": [5.5774, 7.76512, -0.33163]
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [3.68428, 6.19247, 0.90079],
|
||||
"easing": "linear"
|
||||
"0.825": {
|
||||
"vector": [5.5774, 7.76512, -0.33163]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1419,7 +1041,7 @@
|
|||
},
|
||||
"animation.marlin.finish": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.7083,
|
||||
"animation_length": 1,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
|
@ -1438,16 +1060,16 @@
|
|||
"vector": [-19.12116, 5.55971, 55.71985],
|
||||
"easing": "easeInBack"
|
||||
},
|
||||
"0.45": {
|
||||
"0.4083": {
|
||||
"vector": [-7.92819, 1.03543, 32.79611]
|
||||
},
|
||||
"0.5417": {
|
||||
"vector": [-7.97396, 1.43681, 13.3542]
|
||||
"0.4917": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.65": {
|
||||
"vector": [0, 0, -3]
|
||||
"0.575": {
|
||||
"vector": [-2, 0, 0]
|
||||
},
|
||||
"0.7": {
|
||||
"0.7083": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -1470,13 +1092,13 @@
|
|||
"vector": [0.13, 0.31, -0.21]
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [0, 0.25, -0.65]
|
||||
"vector": [0, 0.25, -1.65]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0.25, 0.93]
|
||||
"0.5083": {
|
||||
"vector": [0, 0.16, 1.15]
|
||||
},
|
||||
"0.6417": {
|
||||
"vector": [0, -0.25, -0.45]
|
||||
"0.6167": {
|
||||
"vector": [0, 0.07, -0.4]
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [0, 0, 0]
|
||||
|
@ -1485,36 +1107,36 @@
|
|||
},
|
||||
"Righthand": {
|
||||
"rotation": {
|
||||
"0.1417": {
|
||||
"0.0833": {
|
||||
"vector": [-5.322, 11.403, 4.10285],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.3417": {
|
||||
"0.2": {
|
||||
"vector": [-20.32, 11.4, 4.1],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.5417": {
|
||||
"0.2667": {
|
||||
"vector": [-5.322, 11.403, 4.10285],
|
||||
"easing": "easeInOutCubic"
|
||||
},
|
||||
"0.675": {
|
||||
"0.4": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.1417": {
|
||||
"0.0833": {
|
||||
"vector": [-1.9, -0.1, -0.1],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.3417": {
|
||||
"0.2": {
|
||||
"vector": [-1.9, -0.1, -2.3],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.5417": {
|
||||
"0.2667": {
|
||||
"vector": [-1.9, -0.1, -0.1],
|
||||
"easing": "easeInOutCubic"
|
||||
},
|
||||
"0.675": {
|
||||
"0.4": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
|
@ -1522,42 +1144,43 @@
|
|||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-69.73114, -16.81988, 61.84372],
|
||||
"easing": "linear"
|
||||
"vector": [-45, 0, 0]
|
||||
},
|
||||
"0.325": {
|
||||
"vector": [-46.1235, -16.17767, 13.61388]
|
||||
"0.2333": {
|
||||
"vector": [-45, 0, 0]
|
||||
},
|
||||
"0.425": {
|
||||
"vector": [-30.76, 0, 0]
|
||||
},
|
||||
"0.575": {
|
||||
"vector": [-36.92278, -14.87784, 55.91421]
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [3.68428, 6.19247, 0.90079],
|
||||
"easing": "linear"
|
||||
"vector": [5.5774, 7.76512, -0.33163]
|
||||
},
|
||||
"0.325": {
|
||||
"vector": [3.72757, 8.02813, -1.43582]
|
||||
"0.2333": {
|
||||
"vector": [5.5774, 7.76512, -0.33163]
|
||||
},
|
||||
"0.4583": {
|
||||
"vector": [2.00609, 4.04766, -2.19]
|
||||
"0.425": {
|
||||
"vector": [4.47999, 4.39556, -0.18687]
|
||||
},
|
||||
"0.575": {
|
||||
"vector": [-1.3, 1.55, -1.15]
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"ganggan": {
|
||||
"rotation": {
|
||||
"0.1417": {
|
||||
"0.0833": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.3417": {
|
||||
"0.2": {
|
||||
"vector": [-60, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.5417": {
|
||||
"0.2667": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
|
@ -1565,14 +1188,14 @@
|
|||
},
|
||||
"huakuai": {
|
||||
"position": {
|
||||
"0.1417": {
|
||||
"0.0833": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.3417": {
|
||||
"0.2": {
|
||||
"vector": [0, 0, 1.9],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.5417": {
|
||||
"0.2667": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
|
|
|
@ -152,47 +152,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"animation.ntw_20.fire": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.7917,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-5, 0, 0]
|
||||
},
|
||||
"0.1667": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 4]
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInBounce",
|
||||
"easingArgs": [0.1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, -4]
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInBounce",
|
||||
"easingArgs": [0.1]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.ntw_20.shift": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 2,
|
||||
|
|
|
@ -166,30 +166,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"animation.trachelium.fire": {
|
||||
"animation_length": 0.0417,
|
||||
"override_previous_animation": true,
|
||||
"bones": {
|
||||
"lun": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0417": {
|
||||
"vector": [0, 0, -22.5]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.0417": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.trachelium.reload": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 3,
|
||||
|
@ -1351,62 +1327,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.trachelium.draw": {
|
||||
"animation_length": 0.6,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [27.21312, -47.42646, -2.0218]
|
||||
},
|
||||
"0.1": {
|
||||
"vector": [12.5, -15, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [3.48268, 0.40464, 8.20687]
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [0, 0, -2]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [3, -17.3, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [0, 0, -1.65]
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [0, 0, 0.93]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.3": {
|
||||
"vector": [0.25, -0.5, 0.5],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutSine"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"geckolib_format_version": 2
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
{
|
||||
"name": "shen",
|
||||
"parent": "bone",
|
||||
"pivot": [0, 0, 0]
|
||||
"pivot": [0, 0, 8]
|
||||
},
|
||||
{
|
||||
"name": "0",
|
||||
|
@ -62,11 +62,11 @@
|
|||
{
|
||||
"name": "Lefthand",
|
||||
"parent": "0",
|
||||
"pivot": [4.5, -7.2, 4.6],
|
||||
"rotation": [138.9854, -17.66046, 170.45987],
|
||||
"pivot": [3.40584, -7.42087, 4.12016],
|
||||
"rotation": [108.94926, -42.40297, -138.34723],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [2.5, -7.2, 2.6],
|
||||
"origin": [1.40584, -7.42087, 2.12016],
|
||||
"size": [4, 12, 4],
|
||||
"uv": {
|
||||
"north": {"uv": [7, 12], "uv_size": [3, 12]},
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
{
|
||||
"name": "shen",
|
||||
"parent": "bone",
|
||||
"pivot": [0, 0, 0]
|
||||
"pivot": [0, 0, 4]
|
||||
},
|
||||
{
|
||||
"name": "0",
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
{
|
||||
"name": "shen",
|
||||
"parent": "bone",
|
||||
"pivot": [0, 0, 0]
|
||||
"pivot": [0, -1, 3]
|
||||
},
|
||||
{
|
||||
"name": "0",
|
||||
|
|
|
@ -1175,6 +1175,14 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"marlin_bolt": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:marlin/marlin_end",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"m_870_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
|
@ -1223,6 +1231,14 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"m_870_bolt": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:m_870/m_870_bolt",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"glock_17_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -15,6 +15,5 @@
|
|||
"burst_size": 1,
|
||||
"EmptyReloadTime": 64,
|
||||
"BypassesArmor": 0.7,
|
||||
"SoundRadius": 20,
|
||||
"rpm": 120
|
||||
"SoundRadius": 20
|
||||
}
|
|
@ -20,6 +20,5 @@
|
|||
"iterative_time": 11,
|
||||
"finish_time": 18,
|
||||
"BypassesArmor": 0.5,
|
||||
"SoundRadius": 18,
|
||||
"rpm": 240
|
||||
"SoundRadius": 18
|
||||
}
|
|
@ -20,5 +20,5 @@
|
|||
"finish_time": 12,
|
||||
"BypassesArmor": 0.05,
|
||||
"SoundRadius": 16,
|
||||
"rpm": 80
|
||||
"bolt_action_time": 11
|
||||
}
|
|
@ -20,6 +20,5 @@
|
|||
"normal_reload_time": 60,
|
||||
"EmptyReloadTime": 78,
|
||||
"BypassesArmor": 0.6,
|
||||
"SoundRadius": 18,
|
||||
"rpm": 180
|
||||
"SoundRadius": 18
|
||||
}
|
|
@ -14,10 +14,10 @@
|
|||
"burst": 0,
|
||||
"auto": 0,
|
||||
"burst_size": 1,
|
||||
"prepare_time": 8,
|
||||
"prepare_time": 7,
|
||||
"iterative_time": 16,
|
||||
"finish_time": 19,
|
||||
"BypassesArmor": 0.3,
|
||||
"SoundRadius": 15,
|
||||
"rpm": 120
|
||||
"bolt_action_time": 12
|
||||
}
|
|
@ -20,6 +20,5 @@
|
|||
"iterative_time": 11,
|
||||
"finish_time": 18,
|
||||
"BypassesArmor": 0.54,
|
||||
"SoundRadius": 18,
|
||||
"rpm": 240
|
||||
"SoundRadius": 18
|
||||
}
|
|
@ -18,6 +18,5 @@
|
|||
"normal_reload_time": 63,
|
||||
"EmptyReloadTime": 92,
|
||||
"BypassesArmor": 1,
|
||||
"SoundRadius": 22,
|
||||
"rpm": 90
|
||||
"SoundRadius": 22
|
||||
}
|
|
@ -18,6 +18,5 @@
|
|||
"normal_reload_time": 59,
|
||||
"EmptyReloadTime": 89,
|
||||
"BypassesArmor": 0.8,
|
||||
"SoundRadius": 20,
|
||||
"rpm": 240
|
||||
"SoundRadius": 20
|
||||
}
|
|
@ -18,5 +18,5 @@
|
|||
"EmptyReloadTime": 70,
|
||||
"BypassesArmor": 0.45,
|
||||
"SoundRadius": 17,
|
||||
"rpm": 400
|
||||
"rpm": 300
|
||||
}
|
|
@ -16,5 +16,5 @@
|
|||
"EmptyReloadTime": 65,
|
||||
"BypassesArmor": 0.3,
|
||||
"SoundRadius": 10,
|
||||
"rpm": 300
|
||||
"rpm": 240
|
||||
}
|
Loading…
Add table
Reference in a new issue