翻新波塞克
This commit is contained in:
parent
353b7a1b3b
commit
40c689ed2d
14 changed files with 19470 additions and 3744 deletions
|
@ -41,6 +41,10 @@ public class PlayerVariable implements INBTSerializable<CompoundTag> {
|
|||
}
|
||||
}
|
||||
|
||||
public static boolean isEditing(Entity entity) {
|
||||
return entity.getData(ModAttachments.PLAYER_VARIABLE).edit;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
|
||||
if (!(event.getEntity() instanceof ServerPlayer player)) return;
|
||||
|
@ -85,6 +89,7 @@ public class PlayerVariable implements INBTSerializable<CompoundTag> {
|
|||
sync(player);
|
||||
}
|
||||
|
||||
|
||||
public CompoundTag writeToNBT() {
|
||||
CompoundTag nbt = new CompoundTag();
|
||||
|
||||
|
|
|
@ -336,7 +336,10 @@ public class ClickHandler {
|
|||
if (!stack.is(ModItems.BOCEK.get())) {
|
||||
player.playSound(ModSounds.TRIGGER_CLICK.get(), 1, 1);
|
||||
} else {
|
||||
handTimer = 0;
|
||||
bowPower = 0;
|
||||
holdFire = true;
|
||||
player.setSprinting(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!data.useBackpackAmmo() && data.ammo.get() <= 0 && data.reload.time() == 0) {
|
||||
|
@ -345,8 +348,9 @@ public class ClickHandler {
|
|||
ClientEventHandler.burstFireAmount = 0;
|
||||
}
|
||||
} else {
|
||||
PacketDistributor.sendToServer(new FireKeyMessage(0, handTimer, zoom));
|
||||
if ((!data.reloading()
|
||||
PacketDistributor.sendToServer(new FireKeyMessage(0, bowPower, zoom));
|
||||
if ((!(data.reload.normal() || data.reload.empty())
|
||||
&& !data.reloading()
|
||||
&& !data.charging()
|
||||
&& !data.bolt.needed.get())
|
||||
&& drawTime < 0.01
|
||||
|
@ -365,7 +369,7 @@ public class ClickHandler {
|
|||
}
|
||||
|
||||
public static void handleWeaponFireRelease() {
|
||||
PacketDistributor.sendToServer(new FireKeyMessage(1, handTimer, zoom));
|
||||
PacketDistributor.sendToServer(new FireKeyMessage(1, bowPower, zoom));
|
||||
bowPull = false;
|
||||
holdFire = false;
|
||||
holdFireVehicle = false;
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.atsuishio.superbwarfare.client.model.item;
|
|||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModAttachments;
|
||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.special.BocekItem;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -15,6 +16,9 @@ import software.bernie.geckolib.cache.object.GeoBone;
|
|||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class BocekItemModel extends GeoModel<BocekItem> {
|
||||
public static float rightHandPosZ;
|
||||
|
||||
public static float lerpEdit;
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(BocekItem animatable) {
|
||||
|
@ -34,79 +38,63 @@ public class BocekItemModel extends GeoModel<BocekItem> {
|
|||
@Override
|
||||
public void setCustomAnimations(BocekItem animatable, long instanceId, AnimationState animationState) {
|
||||
GeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
GeoBone arrow = getAnimationProcessor().getBone("arrow");
|
||||
GeoBone rh = getAnimationProcessor().getBone("ys");
|
||||
GeoBone lun = getAnimationProcessor().getBone("hualun1");
|
||||
GeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
GeoBone shen_pos = getAnimationProcessor().getBone("shen_pos");
|
||||
GeoBone xian = getAnimationProcessor().getBone("xian1");
|
||||
GeoBone xian2 = getAnimationProcessor().getBone("xian2");
|
||||
GeoBone fire = getAnimationProcessor().getBone("fire");
|
||||
GeoBone deng = getAnimationProcessor().getBone("deng");
|
||||
GeoBone deng2 = getAnimationProcessor().getBone("deng2");
|
||||
GeoBone deng3 = getAnimationProcessor().getBone("deng3");
|
||||
GeoBone lh = getAnimationProcessor().getBone("lh");
|
||||
GeoBone r = getAnimationProcessor().getBone("r");
|
||||
GeoBone dRing = getAnimationProcessor().getBone("D_ring");
|
||||
GeoBone rightHand = getAnimationProcessor().getBone("safang");
|
||||
GeoBone leftHand = getAnimationProcessor().getBone("lh");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return;
|
||||
|
||||
float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8);
|
||||
double fpz = ClientEventHandler.firePosZ * 13 * times;
|
||||
double fp = ClientEventHandler.firePos;
|
||||
double fr = ClientEventHandler.fireRot;
|
||||
double pp = ClientEventHandler.pullPos;
|
||||
double bp = ClientEventHandler.bowPos;
|
||||
double hp = ClientEventHandler.handPos;
|
||||
float times = Minecraft.getInstance().getTimer().getRealtimeDeltaTicks();
|
||||
|
||||
var cap = player.getData(ModAttachments.PLAYER_VARIABLE);
|
||||
lerpEdit = Mth.lerp(0.2f * times, lerpEdit, cap.edit ? 0 : 1);
|
||||
|
||||
double pp = ClientEventHandler.bowPullPos;
|
||||
double pp2 = 1 - ClientEventHandler.bowPullPos;
|
||||
double zp = ClientEventHandler.zoomPos;
|
||||
double zpz = ClientEventHandler.zoomPosZ;
|
||||
double zp2 = (1 - ClientEventHandler.zoomPos) * lerpEdit;
|
||||
|
||||
gun.setPosX((float) (0.2 * zp2 - 3 * pp2 * zp - 0.35 * pp + 0.35 * zp));
|
||||
gun.setPosY((float) (11f * zp + 3 * zp2 - 1 * pp2 * zp - 0.55 * zp));
|
||||
gun.setPosZ((float) (1.5f * zp + 2 * pp2));
|
||||
gun.setRotZ((float) (-60 * Mth.DEG_TO_RAD * zp2 + -5 * Mth.DEG_TO_RAD * pp2 * zp));
|
||||
gun.setScaleZ((float) (1f - (0.2f * zp)));
|
||||
|
||||
arrow.setPosZ(9f * (float) bp);
|
||||
rh.setPosZ(9f * (float) hp);
|
||||
rh.setRotZ((float) (160 * Mth.DEG_TO_RAD + 45 * Mth.DEG_TO_RAD * ClientEventHandler.handTimer));
|
||||
lun.setRotX(1.6f * (float) bp);
|
||||
leftHand.setRotY((float) (17.5 * Mth.DEG_TO_RAD * pp));
|
||||
|
||||
xian.setRotX(0.56f * (float) bp);
|
||||
xian2.setRotX(-0.56f * (float) bp);
|
||||
xian.setScaleY(1f + (0.25f * (float) bp));
|
||||
xian2.setScaleY(1f + (0.25f * (float) bp));
|
||||
xian.setPosZ(9f * (float) bp);
|
||||
xian2.setPosZ(9f * (float) bp);
|
||||
if (ClientEventHandler.bowPull) {
|
||||
rightHandPosZ = dRing.getPosZ();
|
||||
} else {
|
||||
rightHandPosZ = Mth.lerp(0.06f * times, rightHandPosZ, 0);
|
||||
}
|
||||
|
||||
gun.setScaleZ(1f - (0.2f * (float) pp));
|
||||
gun.setRotZ((float) (-0.1 + 0.2f * pp + 0.07142857142857143f * ClientEventHandler.pullTimer));
|
||||
gun.setRotX(0.01f * (float) pp);
|
||||
gun.setPosZ((float) (3 + -3f * pp - 2.142857142857143 * ClientEventHandler.pullTimer));
|
||||
gun.setPosY(0.1f * (float) pp);
|
||||
r.setScaleZ(1f - (0.2f * (float) pp));
|
||||
deng2.setRotX(1.6f * (float) bp);
|
||||
deng2.setPosZ(0.05f * (float) bp);
|
||||
deng3.setRotX(-1.6f * (float) bp);
|
||||
deng3.setPosZ(0.05f * (float) bp);
|
||||
deng.setScaleZ(1f + (0.07f * (float) bp));
|
||||
GeoBone wing0 = getAnimationProcessor().getBone("wing0");
|
||||
GeoBone wing1 = getAnimationProcessor().getBone("wing1");
|
||||
GeoBone wing2 = getAnimationProcessor().getBone("wing2");
|
||||
|
||||
lh.setRotX(0.2f * (float) zp);
|
||||
shen_pos.setPosX(-3.64f * (float) zp);
|
||||
shen_pos.setPosY(6.46f * (float) zp - (float) (0.2f * zpz));
|
||||
shen_pos.setPosZ(6.4f * (float) zp + (float) (0.3f * zpz));
|
||||
r.setScaleZ(1f - (0.31f * (float) zp));
|
||||
shen.setRotZ(60 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz) - 0.2f);
|
||||
float m = (float) Math.min(zp, pp);
|
||||
|
||||
fire.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
fire.setPosY((float) (-0.03f * fp - 0.06f * fr));
|
||||
fire.setPosZ((float) (0.625 * fp + 0.34f * fr + 0.95 * fpz));
|
||||
fire.setRotX((float) (0.001f * fp + 0.001f * fr + 0.001f * fpz));
|
||||
fire.setRotY((float) (0.01f * ClientEventHandler.recoilHorizon * fpz));
|
||||
fire.setRotZ((float) ((0.02f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
|
||||
wingControl(wing0, m);
|
||||
wingControl(wing1, m);
|
||||
wingControl(wing2, m);
|
||||
|
||||
CrossHairOverlay.gunRot = fire.getRotZ();
|
||||
rightHand.setPosZ(rightHandPosZ);
|
||||
|
||||
CrossHairOverlay.gunRot = shen.getRotZ();
|
||||
ClientEventHandler.gunRootMove(getAnimationProcessor());
|
||||
|
||||
GeoBone camera = getAnimationProcessor().getBone("camera");
|
||||
ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||
}
|
||||
|
||||
public static void wingControl(GeoBone GeoBone, float m) {
|
||||
GeoBone.setRotX(GeoBone.getRotX() * m);
|
||||
GeoBone.setRotY(GeoBone.getRotY() * m);
|
||||
GeoBone.setRotZ(GeoBone.getRotZ() * m);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -95,7 +95,7 @@ public class CrossHairOverlay implements LayeredDraw.Layer {
|
|||
float finPosX = ((w - finLength) / 2) + moveX;
|
||||
float finPosY = ((h - finLength) / 2) + moveY;
|
||||
|
||||
if (shouldRenderCrossHair(player) || (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON && stack.is(ModItems.MINIGUN.get())) || (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK && (ClientEventHandler.zoomTime > 0 || ClientEventHandler.pullPos > 0))) {
|
||||
if (shouldRenderCrossHair(player) || (Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON && stack.is(ModItems.MINIGUN.get())) || (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK && (ClientEventHandler.zoomTime > 0 || ClientEventHandler.bowPullPos > 0))) {
|
||||
preciseBlit(guiGraphics, Mod.loc("textures/screens/point.png"), w / 2f - 7.5f + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16);
|
||||
if (!player.isSprinting() || ClientEventHandler.cantSprint > 0) {
|
||||
if (stack.is(ModTags.Items.SHOTGUN)) {
|
||||
|
@ -113,7 +113,7 @@ public class CrossHairOverlay implements LayeredDraw.Layer {
|
|||
if (stack.is(ModItems.BOCEK.get())) {
|
||||
if (ClientEventHandler.zoomPos < 0.7) {
|
||||
preciseBlit(guiGraphics, Mod.loc("textures/screens/point.png"), w / 2f - 7.5f + moveX, h / 2f - 7.5f + moveY, 0, 0, 16, 16, 16, 16);
|
||||
if (!player.isSprinting() || ClientEventHandler.cantSprint > 0 || ClientEventHandler.pullPos > 0) {
|
||||
if (!player.isSprinting() || ClientEventHandler.cantSprint > 0 || ClientEventHandler.bowPullPos > 0) {
|
||||
if (ClientEventHandler.zoomTime < 0.1) {
|
||||
if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) {
|
||||
normalCrossHair(guiGraphics, w, h, spread, moveX, moveY);
|
||||
|
|
|
@ -6,8 +6,6 @@ import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
|||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
||||
import com.atsuishio.superbwarfare.item.gun.special.BocekItem;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import com.atsuishio.superbwarfare.tools.NBTTool;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -81,22 +79,22 @@ public class BocekItemRenderer extends GeoItemRenderer<BocekItem> {
|
|||
ItemStack itemStack = player.getMainHandItem();
|
||||
if (!(itemStack.getItem() instanceof GunItem)) return;
|
||||
|
||||
final var tag = NBTTool.getTag(itemStack);
|
||||
if (name.equals("holo")) {
|
||||
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || ClientEventHandler.pullPos < 0.7 || !ClientEventHandler.zoom);
|
||||
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || ClientEventHandler.bowPullPos < 0.7 || !ClientEventHandler.zoom);
|
||||
}
|
||||
|
||||
if (name.equals("arrow")) {
|
||||
bone.setHidden(GunsTool.getGunIntTag(tag, "ArrowEmpty") > 1);
|
||||
}
|
||||
|
||||
if (name.equals("jian")) {
|
||||
var data = GunData.from(itemStack);
|
||||
bone.setHidden(data.ammo.get() == 0);
|
||||
}
|
||||
|
||||
if (name.equals("arrow2")) {
|
||||
var data = GunData.from(itemStack);
|
||||
bone.setHidden(data.ammo.get() != 0);
|
||||
}
|
||||
|
||||
if (renderingArms) {
|
||||
AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, true, true);
|
||||
AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false);
|
||||
}
|
||||
super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, color);
|
||||
}
|
||||
|
|
|
@ -97,12 +97,9 @@ public class ClientEventHandler {
|
|||
public static double droneFov = 1;
|
||||
public static double droneFovLerp = 1;
|
||||
public static double fov = 0;
|
||||
public static double pullTimer = 0;
|
||||
public static double bowTimer = 0;
|
||||
public static double handTimer = 0;
|
||||
public static double pullPos = 0;
|
||||
public static double bowPos = 0;
|
||||
public static double handPos = 0;
|
||||
public static double bowPullTimer = 0;
|
||||
public static double bowPower = 0;
|
||||
public static double bowPullPos = 0;
|
||||
public static double gunSpread = 0;
|
||||
public static double fireSpread = 0;
|
||||
public static double cantFireTime = 0;
|
||||
|
@ -1473,20 +1470,13 @@ public class ClientEventHandler {
|
|||
}
|
||||
|
||||
if (bowPull) {
|
||||
pullTimer = Math.min(pullTimer + 0.024 * times, 1.4);
|
||||
bowTimer = Math.min(bowTimer + 0.018 * times, 1);
|
||||
handTimer = Math.min(handTimer + 0.018 * times, 1);
|
||||
handPos = 0.5 * Math.cos(Math.PI * Math.pow(Math.pow(handTimer, 2) - 1, 2)) + 0.5;
|
||||
bowPullTimer = Math.min(bowPullTimer + 0.024 * times, 1.4);
|
||||
bowPower = Math.min(bowPower + 0.018 * times, 1);
|
||||
} else {
|
||||
pullTimer = Math.max(pullTimer - 0.015 * times, 0);
|
||||
bowTimer = Math.max(bowTimer - 1 * times, 0);
|
||||
handTimer = Math.max(handTimer - 0.04 * times, 0);
|
||||
if (handTimer > 0 && handTimer < 0.5) {
|
||||
handPos = 0.5 * Math.cos(Math.PI * Math.pow(Math.pow(handTimer, 2) - 1, 2)) + 0.5;
|
||||
bowPullTimer = Math.max(bowPullTimer - 0.025 * times, 0);
|
||||
bowPower = Math.max(bowPower - 0.04 * times, 0);
|
||||
}
|
||||
}
|
||||
pullPos = 0.5 * Math.cos(Math.PI * Math.pow(Math.pow(Mth.clamp(pullTimer, 0, 1), 2) - 1, 2)) + 0.5;
|
||||
bowPos = 0.5 * Math.cos(Math.PI * Math.pow(Math.pow(bowTimer, 2) - 1, 2)) + 0.5;
|
||||
bowPullPos = 0.5 * Math.cos(Math.PI * Math.pow(Math.pow(Mth.clamp(bowPullTimer, 0, 1), 2) - 1, 2)) + 0.5;
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
|
@ -1514,7 +1504,7 @@ public class ClientEventHandler {
|
|||
|
||||
double p;
|
||||
if (stack.is(ModItems.BOCEK.get())) {
|
||||
p = (pullPos + 0.25) * zoomTime;
|
||||
p = bowPullPos * zoomTime;
|
||||
} else {
|
||||
p = zoomPos;
|
||||
}
|
||||
|
@ -1640,10 +1630,8 @@ public class ClientEventHandler {
|
|||
lungeSprint = 0;
|
||||
lungeAttack = 0;
|
||||
burstFireAmount = 0;
|
||||
pullTimer = 0;
|
||||
bowTimer = 0;
|
||||
handTimer = 0;
|
||||
handPos = 0;
|
||||
bowPullTimer = 0;
|
||||
bowPower = 0;
|
||||
cantSprint = 20;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@ import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
|||
import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType;
|
||||
import com.atsuishio.superbwarfare.perk.Perk;
|
||||
import com.atsuishio.superbwarfare.perk.PerkHelper;
|
||||
import com.atsuishio.superbwarfare.tools.NBTTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -130,7 +129,7 @@ public class VectorItem extends GunItem implements GeoItem {
|
|||
@Override
|
||||
public double getCustomZoom(ItemStack stack) {
|
||||
int scopeType = GunData.from(stack).attachment.get(AttachmentType.SCOPE);
|
||||
return scopeType == 2 ? (NBTTool.getTag(stack).getBoolean("ScopeAlt") ? 0 : 0.75) : 0;
|
||||
return scopeType == 2 ? 0.75 : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.atsuishio.superbwarfare.item.gun.special;
|
||||
|
||||
import com.atsuishio.superbwarfare.Mod;
|
||||
import com.atsuishio.superbwarfare.capability.player.PlayerVariable;
|
||||
import com.atsuishio.superbwarfare.client.renderer.item.BocekItemRenderer;
|
||||
import com.atsuishio.superbwarfare.client.tooltip.component.BocekImageComponent;
|
||||
import com.atsuishio.superbwarfare.entity.projectile.ProjectileEntity;
|
||||
|
@ -9,10 +10,12 @@ import com.atsuishio.superbwarfare.init.ModPerks;
|
|||
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
||||
import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType;
|
||||
import com.atsuishio.superbwarfare.network.message.receive.ShootClientMessage;
|
||||
import com.atsuishio.superbwarfare.perk.AmmoPerk;
|
||||
import com.atsuishio.superbwarfare.perk.Perk;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import com.atsuishio.superbwarfare.tools.InventoryTool;
|
||||
import com.atsuishio.superbwarfare.tools.SoundTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
|
@ -67,6 +70,10 @@ public class BocekItem extends GunItem implements GeoItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||
|
||||
if (ClientEventHandler.bowPull) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlayAndHold("animation.bocek.pull"));
|
||||
}
|
||||
|
||||
if (player.isSprinting() && player.onGround() && ClientEventHandler.cantSprint == 0 && ClientEventHandler.drawTime < 0.01) {
|
||||
if (ClientEventHandler.tacticalSprint) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.run_fast"));
|
||||
|
@ -78,10 +85,57 @@ public class BocekItem extends GunItem implements GeoItem {
|
|||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.idle"));
|
||||
}
|
||||
|
||||
private PlayState firePredicate(AnimationState<BocekItem> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||
|
||||
if (GunsTool.getGunIntTag(GunData.from(stack).tag, "ArrowEmpty") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.bocek.fire"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.idle"));
|
||||
}
|
||||
|
||||
private PlayState reloadPredicate(AnimationState<BocekItem> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||
|
||||
var data = GunData.from(stack);
|
||||
|
||||
if (GunsTool.getGunIntTag(GunData.from(stack).tag, "ArrowEmpty") > 0 && data.ammo.get() == 0 && (data.countBackupAmmo(player) > 0 || InventoryTool.hasCreativeAmmoBox(player))) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.bocek.reload"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.idle"));
|
||||
}
|
||||
|
||||
private PlayState editPredicate(AnimationState<BocekItem> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||
|
||||
if (PlayerVariable.isEditing(player)) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.bocek.edit"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.idle"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
var idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
var fireController = new AnimationController<>(this, "fireController", 0, this::firePredicate);
|
||||
data.add(fireController);
|
||||
var reloadController = new AnimationController<>(this, "reloadController", 0, this::reloadPredicate);
|
||||
data.add(reloadController);
|
||||
var editController = new AnimationController<>(this, "editController", 1, this::editPredicate);
|
||||
data.add(editController);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -119,6 +173,26 @@ public class BocekItem extends GunItem implements GeoItem {
|
|||
return "Bocek";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCustomizable(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCustomScope(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getCustomZoom(ItemStack stack) {
|
||||
int scopeType = GunData.from(stack).attachment.get(AttachmentType.SCOPE);
|
||||
return switch (scopeType) {
|
||||
case 2 -> 0.75;
|
||||
case 3 -> 1.75;
|
||||
default -> 0;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canApplyPerk(Perk perk) {
|
||||
return switch (perk.type) {
|
||||
|
|
|
@ -18,6 +18,7 @@ import net.minecraft.world.entity.Entity;
|
|||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import org.joml.Math;
|
||||
import org.joml.Matrix4f;
|
||||
import org.joml.Vector4f;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
|
@ -171,9 +172,9 @@ public abstract class CameraMixin {
|
|||
if (Minecraft.getInstance().options.getCameraType() == CameraType.THIRD_PERSON_BACK
|
||||
&& entity instanceof Player player
|
||||
&& player.getMainHandItem().is(ModTags.Items.GUN)
|
||||
&& Math.max(ClientEventHandler.pullPos, ClientEventHandler.zoomPos) > 0
|
||||
&& Math.max(ClientEventHandler.bowPullPos, ClientEventHandler.zoomPos) > 0
|
||||
) {
|
||||
move(-getMaxZoom((float) (-2.9 * Math.max(ClientEventHandler.pullPos, ClientEventHandler.zoomPos))), 0, (float) (-ClientEventHandler.cameraLocation * Math.max(ClientEventHandler.pullPos, ClientEventHandler.zoomPos)));
|
||||
move(-getMaxZoom((float) (-2.9 * Math.max(ClientEventHandler.bowPullPos, ClientEventHandler.zoomPos))), 0F, (float) (-ClientEventHandler.cameraLocation * Math.max(ClientEventHandler.bowPullPos, ClientEventHandler.zoomPos)));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,50 +3,117 @@
|
|||
"animations": {
|
||||
"animation.bocek.idle": {
|
||||
"loop": true,
|
||||
"animation_length": 1,
|
||||
"animation_length": 1.1,
|
||||
"bones": {
|
||||
"r": {
|
||||
"rotation": [0, 0, 0]
|
||||
},
|
||||
"wing0": {
|
||||
"rotation": {
|
||||
"vector": [0, 0, 0]
|
||||
"0.0": [24.84302, -42.45406, -54.663],
|
||||
"0.1583": [24.84302, -42.45406, -54.663],
|
||||
"0.1917": [15.97603, -36.10216, -40.71975],
|
||||
"0.525": [15.97603, -36.10216, -40.71975],
|
||||
"0.55": [30.97292, -44.96277, -63.46588],
|
||||
"0.8083": [30.97292, -44.96277, -63.46588],
|
||||
"0.8333": [24.84302, -42.45406, -54.663],
|
||||
"1.1": [24.84302, -42.45406, -54.663]
|
||||
}
|
||||
},
|
||||
"wing1": {
|
||||
"rotation": {
|
||||
"0.0": [9.87527, 33.20103, 32.07176],
|
||||
"0.0917": [9.87527, 33.20103, 32.07176],
|
||||
"0.125": [17.42021, 40.77696, 44.55304],
|
||||
"0.425": [17.42021, 40.77696, 44.55304],
|
||||
"0.4583": [14.35768, 38.08978, 39.68516],
|
||||
"0.75": [14.35768, 38.08978, 39.68516],
|
||||
"0.7833": [21.88875, 43.61684, 51.1403],
|
||||
"1.0667": [21.88875, 43.61684, 51.1403],
|
||||
"1.1": [9.87527, 33.20103, 32.07176]
|
||||
}
|
||||
},
|
||||
"wing2": {
|
||||
"rotation": {
|
||||
"0.0": [25.6525, -45.67972, -57.03841],
|
||||
"0.25": [25.6525, -45.67972, -57.03841],
|
||||
"0.2833": [38.17627, -49.59002, -73.92305],
|
||||
"0.55": [38.17627, -49.59002, -73.92305],
|
||||
"0.5833": [21.59877, -43.46728, -51.2118],
|
||||
"0.8": [21.59877, -43.46728, -51.2118],
|
||||
"1.0667": [21.59877, -43.46728, -51.2118],
|
||||
"1.1": [25.6525, -45.67972, -57.03841]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.bocek.draw": {
|
||||
"animation_length": 1,
|
||||
"animation.bocek.edit": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.4083,
|
||||
"bones": {
|
||||
"anim": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.1667": {
|
||||
"vector": [27.21312, -47.42646, -2.0218]
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [12.5, -15, 0]
|
||||
"0.0667": {
|
||||
"post": [-13.37397, -18.59699, -1.83212],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [3.48268, 0.40464, 8.20687]
|
||||
"0.15": {
|
||||
"post": [-17.77391, -60.1281, -10.99134],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [0, 0, -2]
|
||||
"0.3": {
|
||||
"post": [4.29, -70.22, -13.22],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"vector": [0, 0, 0]
|
||||
"0.3583": {
|
||||
"post": [2.28664, -70.21598, -13.21611],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4083": {
|
||||
"post": [2.18, -70.22, -13.22],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.1667": {
|
||||
"vector": [5, -27.3, 5]
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, -1.65]
|
||||
"0.0583": {
|
||||
"post": [1.22297, 0.37811, -1.26375],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0.93]
|
||||
"0.1167": {
|
||||
"post": [0.12132, 1.14111, -1.71705],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"vector": [0, 0, 0]
|
||||
"0.3": {
|
||||
"post": [8.49002, 10.03958, -4.07823],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3583": {
|
||||
"post": [4.27378, 9.39346, -4.09756],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4083": {
|
||||
"post": [6.9, 9.9, -4.09],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": [-51.42913, -7.99833, 65.60001],
|
||||
"position": [21.85, -19.65, 7],
|
||||
"scale": 0
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": [72.69469, -60.09451, -36.63152],
|
||||
"position": [19, -18.6, 14.8],
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -54,61 +121,73 @@
|
|||
"loop": true,
|
||||
"animation_length": 0.8333,
|
||||
"bones": {
|
||||
"anim": {
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [10, -10, 5]
|
||||
"post": [-0.3, -0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [5, -4, 1]
|
||||
"post": [0.3, 0, -0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [10, -2, -7.5]
|
||||
"post": [-0.3, 0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.625": {
|
||||
"vector": [5, -6, -10]
|
||||
"post": [0.3, 0, -0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [10, -10, 5]
|
||||
"post": [-0.3, -0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"move": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [10, -10, 5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2083": {
|
||||
"post": [5, -4, 1],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"post": [10, -2, -7.5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.625": {
|
||||
"post": [5, -6, -10],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8333": {
|
||||
"post": [10, -10, 5],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [2.49619, -2.07196, 0.17365]
|
||||
"post": [2.49619, -2.07196, 0.17365],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [-0.25, 0.5, 0],
|
||||
"easing": "easeInSine"
|
||||
"post": [-0.25, 0.5, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [-2.4969, -2.11525, 0.13864],
|
||||
"easing": "easeOutSine"
|
||||
"post": [-2.4969, -2.11525, 0.13864],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.625": {
|
||||
"vector": [-0.25, 0.5, 0],
|
||||
"easing": "easeInSine"
|
||||
"post": [-0.25, 0.5, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [2.49619, -2.07196, 0.17365]
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [-0.3, 0.3, 0.3]
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
},
|
||||
"0.7917": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
"post": [2.49619, -2.07196, 0.17365],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -116,68 +195,530 @@
|
|||
},
|
||||
"animation.bocek.run_fast": {
|
||||
"loop": true,
|
||||
"animation_length": 0.7,
|
||||
"animation_length": 0.6,
|
||||
"bones": {
|
||||
"anim": {
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-17.24597, -28.12341, 15.3498]
|
||||
"post": [-0.3, -0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [-18.69703, -20.6475, 6.54519]
|
||||
"0.15": {
|
||||
"post": [0.3, 0, -0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-11.13053, -13.31405, -12.81665]
|
||||
"0.3": {
|
||||
"post": [-0.3, 0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [-18.90638, -22.63801, -4.37758]
|
||||
"0.45": {
|
||||
"post": [0.3, 0, -0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [-17.24597, -28.12341, 15.3498]
|
||||
"0.6": {
|
||||
"post": [-0.3, -0.3, 0.3],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"move": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [-17.24597, -28.12341, 15.3498],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [-18.69703, -20.6475, 6.54519],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [-11.13053, -13.31405, -12.81665],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.45": {
|
||||
"post": [-18.90638, -22.63801, -4.37758],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6": {
|
||||
"post": [-17.24597, -28.12341, 15.3498],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [9.01918, 1.00725, 2.02529]
|
||||
"post": [9.01918, 1.00725, 2.02529],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [4.45879, 3.05461, 0.6762],
|
||||
"easing": "easeInSine"
|
||||
"0.15": {
|
||||
"post": [4.45879, 3.05461, 0.6762],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [-0.89903, 2.10978, -0.3762],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.45": {
|
||||
"post": [3.85879, 3.90156, 0.83854],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6": {
|
||||
"post": [9.01918, 1.00725, 2.02529],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.bocek.pull": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.4,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0833": {
|
||||
"post": [-1.26168, -0.64554, 0.80994],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1583": {
|
||||
"post": [-1.86542, -1.38487, -3.43081],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2333": {
|
||||
"post": [0.45, -1.55, -0.82],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3083": {
|
||||
"post": [0.05645, -0.82959, 2.05914],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-0.89903, 2.10978, -0.3762],
|
||||
"easing": "easeOutSine"
|
||||
"post": [-0.27, -0.33, 1.34],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [3.85879, 3.90156, 0.83854],
|
||||
"easing": "easeInSine"
|
||||
"0.4": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [9.01918, 1.00725, 2.02529]
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0583": {
|
||||
"post": [0.05, -0.14, 0.73],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1083": {
|
||||
"post": [-0.35, 0.03, -0.51],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [-0.65, 0.15, -1.22],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2333": {
|
||||
"post": [-0.4, -0.15, -1.65],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3167": {
|
||||
"post": [-0.15, -0.07, -1.55],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3583": {
|
||||
"post": [-0.06, -0.04, -1.37],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3833": {
|
||||
"post": [-0.03, -0.02, -0.81],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4": {
|
||||
"post": [0, 0, -1.05],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"xian1": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.05": [0.12, 0, 0],
|
||||
"0.1": [0.96, 0, 0],
|
||||
"0.15": [1.98, 0, 0],
|
||||
"0.2": [2.645, 0, 0],
|
||||
"0.25": [2.4, 0, 0],
|
||||
"0.3": [3.46, 0, 0],
|
||||
"0.35": [9.66, 0, 0],
|
||||
"0.4": [19.72, 0, 0]
|
||||
},
|
||||
"scale": {
|
||||
"0.0": [1, 1, 1],
|
||||
"0.15": [1, 1.0082, 1],
|
||||
"0.2": [1, 1.053, 1],
|
||||
"0.25": [1, 1.0978, 1],
|
||||
"0.3": [1, 1.0504, 1],
|
||||
"0.35": [1, 1.0296, 1],
|
||||
"0.4": [1, 1.051, 1]
|
||||
}
|
||||
},
|
||||
"bone122": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.05": [-5.96, 0, 0],
|
||||
"0.1": [-15.52, 0, 0],
|
||||
"0.15": [-34, 0, 0],
|
||||
"0.2": [-62.02, 0, 0],
|
||||
"0.25": [-94.52, 0, 0],
|
||||
"0.3": [-133.49, 0, 0],
|
||||
"0.35": [-176.95, 0, 0],
|
||||
"0.4": [-240, 0, 0]
|
||||
}
|
||||
},
|
||||
"xian2": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.05": [-0.12, 0, 0],
|
||||
"0.1": [-0.96, 0, 0],
|
||||
"0.15": [-1.98, 0, 0],
|
||||
"0.2": [-2.435, 0, 0],
|
||||
"0.25": [-2.085, 0, 0],
|
||||
"0.3": [-2.825, 0, 0],
|
||||
"0.35": [-8.37, 0, 0],
|
||||
"0.4": [-17.17, 0, 0]
|
||||
},
|
||||
"scale": {
|
||||
"0.0": [1, 1, 1],
|
||||
"0.15": [1, 1.0082, 1],
|
||||
"0.2": [1, 1.053, 1],
|
||||
"0.25": [1, 1.0978, 1],
|
||||
"0.3": [1, 1.0504, 1],
|
||||
"0.35": [1, 1.0296, 1],
|
||||
"0.4": [1, 1.051, 1]
|
||||
}
|
||||
},
|
||||
"bone123": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.05": [5.96, 0, 0],
|
||||
"0.1": [15.52, 0, 0],
|
||||
"0.15": [34, 0, 0],
|
||||
"0.2": [62.02, 0, 0],
|
||||
"0.25": [94.52, 0, 0],
|
||||
"0.3": [133.49, 0, 0],
|
||||
"0.35": [176.95, 0, 0],
|
||||
"0.4": [240, 0, 0]
|
||||
}
|
||||
},
|
||||
"D_ring": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.05": [0, 0, 0.15],
|
||||
"0.1": [0, 0, 0.4],
|
||||
"0.15": [0, 0, 0.73],
|
||||
"0.2": [0, 0, 1.29],
|
||||
"0.25": [0, 0, 2.17],
|
||||
"0.3": [0, 0, 3.65],
|
||||
"0.35": [0, 0, 6.32],
|
||||
"0.4": [0, 0, 9]
|
||||
}
|
||||
},
|
||||
"arrow": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.05": [0, 0, 0.15],
|
||||
"0.1": [0, 0, 0.4],
|
||||
"0.15": [0, 0, 0.73],
|
||||
"0.2": [0, 0, 1.29],
|
||||
"0.25": [0, 0, 2.17],
|
||||
"0.3": [0, 0, 3.65],
|
||||
"0.35": [0, 0, 6.32],
|
||||
"0.4": [0, 0, 9]
|
||||
}
|
||||
},
|
||||
"rot": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0417": {
|
||||
"post": [0, 0, 5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2583": {
|
||||
"post": [0, 0, 40],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.375": {
|
||||
"post": [0, 0, 60],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": {
|
||||
"0.1667": {
|
||||
"pre": [0, 0, 0],
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2917": {
|
||||
"post": [2.76285, -17.65376, 2.21483],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1": {
|
||||
"post": [-0.5, -0.25, 0.7],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2": {
|
||||
"post": [0.22, 0.15, -0.2],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2917": {
|
||||
"post": [-0.04, -0.05, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3417": {
|
||||
"post": [-0.09, -0.05, -0.26],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.bocek.fire": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.4,
|
||||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0333": {
|
||||
"post": [2.05, -0.41, 1],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0833": {
|
||||
"post": [2.13982, -0.98505, 2.41726],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.15": {
|
||||
"post": [0.15, -1.1, 0.5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2333": {
|
||||
"post": [-0.35, -0.29, -0.26],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [0.08, 0.09, 0.08],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.375": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0333": {
|
||||
"post": [0.23, -1.13, -4.36],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
"post": [-0.35, -0.21, -0.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-0.3, 0.3, 0.3]
|
||||
"0.2583": {
|
||||
"post": [-0.34, 0.26, 0.14],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
"0.375": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0417": {
|
||||
"post": [1, 0.85, -1.95],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1167": {
|
||||
"post": [-0.75, -0.65, 1.22],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.225": {
|
||||
"post": [-0.15, 0.55, -0.2],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3": {
|
||||
"post": [0.26, -0.05, 0.05],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.375": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"geckolib_format_version": 2
|
||||
"animation.bocek.reload": {
|
||||
"animation_length": 0.35,
|
||||
"bones": {
|
||||
"zhou": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1667": {
|
||||
"post": [0, 0, 157.5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.25": {
|
||||
"post": [0, 0, 157.5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3083": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"bone101": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.1333": {
|
||||
"post": [0, 0, -87.5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2667": {
|
||||
"post": [0, 0, -87.5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3417": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"arrow2": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0333": [-0.24, 0.74, 0],
|
||||
"0.0667": [0.02, 1.27, 0],
|
||||
"0.1": [0.56, 1.88, 0],
|
||||
"0.1333": [1.29, 1.99, 0],
|
||||
"0.175": [1.91, 1.69, 0],
|
||||
"0.2083": [2.4, 1, 0],
|
||||
"0.3417": [2.4, 1, 0],
|
||||
"0.35": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"arrowBody8": {
|
||||
"position": {
|
||||
"0.2": [0, 0, 0],
|
||||
"0.3167": [0, 0, 4],
|
||||
"0.3417": [0, 0, 4],
|
||||
"0.35": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"arrowBody7": {
|
||||
"position": {
|
||||
"0.2": [0, 0, 0],
|
||||
"0.3167": [0, 0, 4],
|
||||
"0.3417": [0, 0, 4],
|
||||
"0.35": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"yu4": {
|
||||
"scale": {
|
||||
"0.3167": [1, 1, 1],
|
||||
"0.3333": [1, 13.6, 1],
|
||||
"0.3417": [1, 13.6, 1],
|
||||
"0.35": [1, 1, 1]
|
||||
}
|
||||
},
|
||||
"yu5": {
|
||||
"scale": {
|
||||
"0.3167": [1, 1, 1],
|
||||
"0.3333": [1, 13.6, 1],
|
||||
"0.3417": [1, 13.6, 1],
|
||||
"0.35": [1, 1, 1]
|
||||
}
|
||||
},
|
||||
"yu6": {
|
||||
"scale": {
|
||||
"0.3167": [1, 1, 1],
|
||||
"0.3333": [1, 13.6, 1],
|
||||
"0.3417": [1, 13.6, 1],
|
||||
"0.35": [1, 1, 1]
|
||||
}
|
||||
},
|
||||
"arrowBody10": {
|
||||
"position": {
|
||||
"0.2": [0, 0, 0],
|
||||
"0.3167": [0, 0, -4],
|
||||
"0.3417": [0, 0, -4],
|
||||
"0.35": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"arrowBody11": {
|
||||
"position": {
|
||||
"0.2": [0, 0, 0],
|
||||
"0.3167": [0, 0, -4],
|
||||
"0.3417": [0, 0, -4],
|
||||
"0.35": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"arrowBody12": {
|
||||
"position": {
|
||||
"0.2": [0, 0, 0],
|
||||
"0.3167": [0, 0, -4],
|
||||
"0.3417": [0, 0, -4],
|
||||
"0.35": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"head2": {
|
||||
"position": {
|
||||
"0.2": [0, 0, 0],
|
||||
"0.3167": [0, 0, -4],
|
||||
"0.3417": [0, 0, -4],
|
||||
"0.35": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -8,8 +8,8 @@
|
|||
"display": {
|
||||
"firstperson_righthand": {
|
||||
"translation": [
|
||||
-10.25,
|
||||
-2.5,
|
||||
-9,
|
||||
-5.25,
|
||||
-7.25
|
||||
]
|
||||
},
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 34 KiB |
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
"DefaultZoom": 2,
|
||||
"Spread": 4,
|
||||
"Headshot": 2.5,
|
||||
"Damage": 48,
|
||||
|
|
Loading…
Add table
Reference in a new issue