添加MP443,重置部分武器手臂枢轴
This commit is contained in:
parent
8975582a11
commit
b601350af7
50 changed files with 4387 additions and 697 deletions
|
@ -1,4 +1,4 @@
|
|||
// 1.20.1 2024-12-30T15:07:23.9778545 Tags for minecraft:item mod id superbwarfare
|
||||
// 1.20.1 2025-01-09T04:05:02.4248154 Tags for minecraft:item mod id superbwarfare
|
||||
cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json
|
||||
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json
|
||||
295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json
|
||||
|
@ -26,18 +26,18 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/forge/tags/items/storage_blocks/le
|
|||
30d1daa7590f7364b5bc2dc777a00caf2f5eecb0 data/forge/tags/items/storage_blocks/silver.json
|
||||
3743c2790deca7e779d3e4b82f092de39b446988 data/forge/tags/items/storage_blocks/steel.json
|
||||
144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json
|
||||
52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json
|
||||
62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json
|
||||
592381daae9fa8c2996f4cabc58850c35139cb2f data/superbwarfare/tags/items/gun.json
|
||||
409af265147e812b6f6558c51f1cb83b0f61b7d3 data/superbwarfare/tags/items/handgun.json
|
||||
68ec25b0ccd68abbbe2f33ab7097572c2140c9da data/superbwarfare/tags/items/launcher.json
|
||||
b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/items/machine_gun.json
|
||||
a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/items/military_armor.json
|
||||
1ff5db892183135cbdd9c38a6b8c6e4eb287341e data/superbwarfare/tags/items/normal_gun.json
|
||||
5706356c3b32de89f5d4188dd9a72665537d8c09 data/superbwarfare/tags/items/normal_gun.json
|
||||
15328cd564c931cc0a4fc000596240f93a7b29a1 data/superbwarfare/tags/items/revolver.json
|
||||
aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/items/rifle.json
|
||||
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json
|
||||
4aca0fa3f8b9f2a4920041e35e46dae7e93d5482 data/superbwarfare/tags/items/smg.json
|
||||
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/sniper_rifle.json
|
||||
202756a5a9085f5883ca34424a79c1b7831101a9 data/superbwarfare/tags/items/use_handgun_ammo.json
|
||||
9af8a0147d1e920ef2a2b990bc9010367cf3b7df data/superbwarfare/tags/items/use_handgun_ammo.json
|
||||
2899774c6325135847a85b09121ce25587aa275e data/superbwarfare/tags/items/use_rifle_ammo.json
|
||||
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/use_shotgun_ammo.json
|
||||
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/use_sniper_ammo.json
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// 1.20.1 2025-01-07T03:38:49.7324927 Item Models: superbwarfare
|
||||
// 1.20.1 2025-01-09T05:18:04.2557625 Item Models: superbwarfare
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/aa_12_blueprint.json
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_12_blueprint.json
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_47_blueprint.json
|
||||
|
@ -64,6 +64,7 @@ ac9c6bc308bd741ada7f19d808d0c0722fceb976 assets/superbwarfare/models/item/mortar
|
|||
92ce87d9ae2ab3dbb099d39f74ceb49248fe0b1f assets/superbwarfare/models/item/mortar_shells.json
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/mosin_nagant_blueprint.json
|
||||
4de8d6e0cddd28963febd35e9b66334a41a25d4c assets/superbwarfare/models/item/motor.json
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/mp_443_blueprint.json
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/m_1911_blueprint.json
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/m_4_blueprint.json
|
||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/m_60_blueprint.json
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "superbwarfare:item/gun_blueprint"
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@
|
|||
"superbwarfare:taser",
|
||||
"superbwarfare:glock_17",
|
||||
"superbwarfare:glock_18",
|
||||
"superbwarfare:mp_443",
|
||||
"superbwarfare:m_1911",
|
||||
"superbwarfare:abekiri",
|
||||
"superbwarfare:trachelium",
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
"superbwarfare:trachelium",
|
||||
"superbwarfare:glock_17",
|
||||
"superbwarfare:glock_18",
|
||||
"superbwarfare:m_1911"
|
||||
"superbwarfare:m_1911",
|
||||
"superbwarfare:mp_443"
|
||||
]
|
||||
}
|
|
@ -25,6 +25,7 @@
|
|||
"superbwarfare:m_1911",
|
||||
"superbwarfare:qbz_95",
|
||||
"superbwarfare:k_98",
|
||||
"superbwarfare:mosin_nagant"
|
||||
"superbwarfare:mosin_nagant",
|
||||
"superbwarfare:mp_443"
|
||||
]
|
||||
}
|
|
@ -3,6 +3,7 @@
|
|||
"superbwarfare:glock_17",
|
||||
"superbwarfare:glock_18",
|
||||
"superbwarfare:m_1911",
|
||||
"superbwarfare:vector"
|
||||
"superbwarfare:vector",
|
||||
"superbwarfare:mp_443"
|
||||
]
|
||||
}
|
|
@ -1,10 +1,11 @@
|
|||
package com.atsuishio.superbwarfare.client;
|
||||
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import net.minecraft.client.model.geom.ModelPart;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import software.bernie.geckolib.cache.object.GeoBone;
|
||||
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
||||
|
@ -28,6 +29,22 @@ public class AnimationHelper {
|
|||
model.zRot = 0.0f;
|
||||
}
|
||||
|
||||
public static void renderPartOverBone2(ModelPart model, GeoBone bone, PoseStack stack, VertexConsumer buffer, int packedLightIn, int packedOverlayIn, float alpha) {
|
||||
renderPartOverBone2(model, bone, stack, buffer, packedLightIn, packedOverlayIn, 1.0f, 1.0f, 1.0f, alpha);
|
||||
}
|
||||
|
||||
public static void renderPartOverBone2(ModelPart model, GeoBone bone, PoseStack stack, VertexConsumer buffer, int packedLightIn, int packedOverlayIn, float r, float g, float b, float a) {
|
||||
setupModelFromBone2(model, bone);
|
||||
model.render(stack, buffer, packedLightIn, packedOverlayIn, r, g, b, a);
|
||||
}
|
||||
|
||||
public static void setupModelFromBone2(ModelPart model, GeoBone bone) {
|
||||
model.setPos(bone.getPivotX(), bone.getPivotY() + 7, bone.getPivotZ());
|
||||
model.xRot = 0.0f;
|
||||
model.yRot = 180 * Mth.DEG_TO_RAD;
|
||||
model.zRot = 180 * Mth.DEG_TO_RAD;
|
||||
}
|
||||
|
||||
public static void handleShellsAnimation(AnimationProcessor<?> animationProcessor, float x, float y) {
|
||||
CoreGeoBone shell1 = animationProcessor.getBone("shell1");
|
||||
CoreGeoBone shell2 = animationProcessor.getBone("shell2");
|
||||
|
|
|
@ -22,4 +22,12 @@ public class ModRenderTypes extends RenderType {
|
|||
.setCullState(NO_CULL).setOverlayState(OVERLAY).setWriteMaskState(COLOR_WRITE).createCompositeState(false);
|
||||
return RenderType.create("laser", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, true, false, state);
|
||||
});
|
||||
|
||||
public static final Function<ResourceLocation, RenderType> ILLUMINATED = Util.memoize((location) -> {
|
||||
TextureStateShard shard = new RenderStateShard.TextureStateShard(location, false, false);
|
||||
RenderType.CompositeState state = RenderType.CompositeState.builder().setTextureState(shard)
|
||||
.setShaderState(RENDERTYPE_ENTITY_TRANSLUCENT_EMISSIVE_SHADER).setTransparencyState(ADDITIVE_TRANSPARENCY)
|
||||
.setCullState(NO_CULL).setOverlayState(NO_OVERLAY).createCompositeState(false);
|
||||
return RenderType.create("illuminated", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.QUADS, 256, true, false, state);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package com.atsuishio.superbwarfare.client.layer;
|
||||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Mp443Item;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class Mp443Layer extends GeoRenderLayer<Mp443Item> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/mp443_e.png");
|
||||
|
||||
public Mp443Layer(GeoRenderer<Mp443Item> itemGeoRenderer) {
|
||||
super(itemGeoRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, Mp443Item animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.atsuishio.superbwarfare.client.layer;
|
||||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.client.ModRenderTypes;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Mp443Item;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class Mp443LightLayer extends GeoRenderLayer<Mp443Item> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/mp443_light_e.png");
|
||||
|
||||
public Mp443LightLayer(GeoRenderer<Mp443Item> itemGeoRenderer) {
|
||||
super(itemGeoRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, Mp443Item animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = ModRenderTypes.ILLUMINATED.apply(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,146 @@
|
|||
package com.atsuishio.superbwarfare.client.model.item;
|
||||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
||||
import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModTags;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Mp443Item;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
||||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class Mp443ItemModel extends GeoModel<Mp443Item> {
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(Mp443Item animatable) {
|
||||
return ModUtils.loc("animations/glock17.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(Mp443Item animatable) {
|
||||
return ModUtils.loc("geo/mp443.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(Mp443Item animatable) {
|
||||
return ModUtils.loc("textures/item/mp443.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomAnimations(Mp443Item animatable, long instanceId, AnimationState animationState) {
|
||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone slide = getAnimationProcessor().getBone("huatao");
|
||||
CoreGeoBone bullet = getAnimationProcessor().getBone("bullet");
|
||||
CoreGeoBone hammer = getAnimationProcessor().getBone("trigger");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
if (player == null) return;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return;
|
||||
|
||||
float times = 0.6f * (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 0.8);
|
||||
double zt = ClientEventHandler.zoomTime;
|
||||
double zp = ClientEventHandler.zoomPos;
|
||||
double zpz = ClientEventHandler.zoomPosZ;
|
||||
double swayX = ClientEventHandler.swayX;
|
||||
double swayY = ClientEventHandler.swayY;
|
||||
float moveRotZ = (float) ClientEventHandler.moveRotZ;
|
||||
float movePosX = (float) ClientEventHandler.movePosX;
|
||||
float movePosY = (float) ClientEventHandler.movePosY;
|
||||
double mph = ClientEventHandler.movePosHorizon;
|
||||
double vY = ClientEventHandler.velocityY;
|
||||
double turnRotX = ClientEventHandler.turnRot[0];
|
||||
double turnRotY = ClientEventHandler.turnRot[1];
|
||||
double turnRotZ = ClientEventHandler.turnRot[2];
|
||||
double fpz = ClientEventHandler.firePosZ * 20 * times;
|
||||
double fp = ClientEventHandler.firePos;
|
||||
double fr = ClientEventHandler.fireRot;
|
||||
|
||||
gun.setPosX(2.23f * (float) zp);
|
||||
gun.setPosY(3.25f * (float) zp - (float) (0.2f * zpz));
|
||||
gun.setPosZ(5f * (float) zp + (float) (0.3f * zpz));
|
||||
gun.setScaleZ(1f - (0.35f * (float) zp));
|
||||
|
||||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (0.25f * fp + 0.28f * fr));
|
||||
shen.setPosZ((float) (2.375 * fp + 0.44f * fr + 0.75 * 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.8 * zt)));
|
||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
|
||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
|
||||
|
||||
CrossHairOverlay.gunRot = shen.getRotZ();
|
||||
|
||||
slide.setPosZ(1.5f * (float) fp);
|
||||
hammer.setRotX((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));
|
||||
root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY));
|
||||
root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY));
|
||||
root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ));
|
||||
|
||||
CoreGeoBone camera = getAnimationProcessor().getBone("camera");
|
||||
CoreGeoBone main = getAnimationProcessor().getBone("0");
|
||||
CoreGeoBone body = getAnimationProcessor().getBone("gun");
|
||||
|
||||
float numR = (float) (1 - 0.12 * zt);
|
||||
float numP = (float) (1 - 0.68 * zt);
|
||||
|
||||
if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0) {
|
||||
main.setRotX(numR * main.getRotX());
|
||||
main.setRotY(numR * main.getRotY());
|
||||
main.setRotZ(numR * main.getRotZ());
|
||||
main.setPosX(numP * main.getPosX());
|
||||
main.setPosY(numP * main.getPosY());
|
||||
main.setPosZ(numP * main.getPosZ());
|
||||
body.setRotX(numR * body.getRotX());
|
||||
body.setRotY(numR * body.getRotY());
|
||||
body.setRotZ(numR * body.getRotZ());
|
||||
body.setPosX(numP * body.getPosX());
|
||||
body.setPosY(numP * body.getPosY());
|
||||
body.setPosZ(numP * body.getPosZ());
|
||||
camera.setRotX(numR * camera.getRotX());
|
||||
camera.setRotY(numR * camera.getRotY());
|
||||
camera.setRotZ(numR * camera.getRotZ());
|
||||
}
|
||||
|
||||
ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||
AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f);
|
||||
|
||||
CoreGeoBone shell = getAnimationProcessor().getBone("shell");
|
||||
if (GunsTool.getGunBooleanTag(stack, "HoldOpen")) {
|
||||
slide.setPosZ(1.5f);
|
||||
bullet.setScaleX(0);
|
||||
bullet.setScaleY(0);
|
||||
bullet.setScaleZ(0);
|
||||
|
||||
shell.setScaleX(0);
|
||||
shell.setScaleY(0);
|
||||
shell.setScaleZ(0);
|
||||
} else {
|
||||
bullet.setScaleX(1);
|
||||
bullet.setScaleY(1);
|
||||
bullet.setScaleZ(1);
|
||||
|
||||
shell.setScaleX(1);
|
||||
shell.setScaleY(1);
|
||||
shell.setScaleZ(1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -170,12 +170,12 @@ public class AK47ItemRenderer extends GeoItemRenderer<AK47Item> {
|
|||
VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc));
|
||||
if (name.equals("Lefthand")) {
|
||||
stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f);
|
||||
AnimationHelper.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
} else {
|
||||
stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f);
|
||||
AnimationHelper.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
}
|
||||
|
||||
this.currentBuffer.getBuffer(this.renderType);
|
||||
|
|
|
@ -0,0 +1,139 @@
|
|||
package com.atsuishio.superbwarfare.client.renderer.item;
|
||||
|
||||
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
||||
import com.atsuishio.superbwarfare.client.layer.Mp443Layer;
|
||||
import com.atsuishio.superbwarfare.client.layer.Mp443LightLayer;
|
||||
import com.atsuishio.superbwarfare.client.model.item.Mp443ItemModel;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModTags;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Mp443Item;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
import net.minecraft.client.player.AbstractClientPlayer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.entity.player.PlayerRenderer;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
import software.bernie.geckolib.cache.object.GeoBone;
|
||||
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
||||
import software.bernie.geckolib.util.RenderUtils;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class Mp443ItemRenderer extends GeoItemRenderer<Mp443Item> {
|
||||
|
||||
public Mp443ItemRenderer() {
|
||||
super(new Mp443ItemModel());
|
||||
this.addRenderLayer(new Mp443Layer(this));
|
||||
this.addRenderLayer(new Mp443LightLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(Mp443Item animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||
}
|
||||
|
||||
private static final float SCALE_RECIPROCAL = 1.0f / 16.0f;
|
||||
protected boolean renderArms = false;
|
||||
protected MultiBufferSource currentBuffer;
|
||||
protected RenderType renderType;
|
||||
public ItemDisplayContext transformType;
|
||||
protected Mp443Item animatable;
|
||||
private final Set<String> hiddenBones = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) {
|
||||
this.transformType = transformType;
|
||||
if (this.animatable != null)
|
||||
this.animatable.getTransformType(transformType);
|
||||
super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actuallyRender(PoseStack matrixStackIn, Mp443Item animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
|
||||
int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
this.currentBuffer = renderTypeBuffer;
|
||||
this.renderType = type;
|
||||
this.animatable = animatable;
|
||||
super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
if (this.renderArms) {
|
||||
this.renderArms = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderRecursively(PoseStack stack, Mp443Item animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red,
|
||||
float green, float blue, float alpha) {
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
String name = bone.getName();
|
||||
boolean renderingArms = false;
|
||||
if (name.equals("Lefthand") || name.equals("Righthand")) {
|
||||
bone.setHidden(true);
|
||||
renderingArms = true;
|
||||
} else {
|
||||
bone.setHidden(this.hiddenBones.contains(name));
|
||||
}
|
||||
|
||||
Player player = mc.player;
|
||||
if (player == null) return;
|
||||
ItemStack itemStack = player.getMainHandItem();
|
||||
if (!itemStack.is(ModTags.Items.GUN)) return;
|
||||
|
||||
if (name.equals("flare")) {
|
||||
if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) {
|
||||
bone.setHidden(true);
|
||||
} else {
|
||||
bone.setHidden(false);
|
||||
bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5)));
|
||||
bone.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5)));
|
||||
bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
||||
}
|
||||
}
|
||||
|
||||
if (this.transformType.firstPerson() && renderingArms) {
|
||||
AbstractClientPlayer localPlayer = mc.player;
|
||||
|
||||
if (localPlayer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(localPlayer);
|
||||
PlayerModel<AbstractClientPlayer> model = playerRenderer.getModel();
|
||||
stack.pushPose();
|
||||
RenderUtils.translateMatrixToBone(stack, bone);
|
||||
RenderUtils.translateToPivotPoint(stack, bone);
|
||||
RenderUtils.rotateMatrixAroundBone(stack, bone);
|
||||
RenderUtils.scaleMatrixForBone(stack, bone);
|
||||
RenderUtils.translateAwayFromPivotPoint(stack, bone);
|
||||
ResourceLocation loc = localPlayer.getSkinTextureLocation();
|
||||
VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc));
|
||||
VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc));
|
||||
if (name.equals("Lefthand")) {
|
||||
stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f);
|
||||
AnimationHelper.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
} else {
|
||||
stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f);
|
||||
AnimationHelper.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
}
|
||||
|
||||
this.currentBuffer.getBuffer(this.renderType);
|
||||
stack.popPose();
|
||||
}
|
||||
super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(Mp443Item instance) {
|
||||
return super.getTextureLocation(instance);
|
||||
}
|
||||
}
|
|
@ -102,12 +102,12 @@ public class TaserItemRenderer extends GeoItemRenderer<TaserItem> {
|
|||
VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc));
|
||||
if (name.equals("Lefthand")) {
|
||||
stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f);
|
||||
AnimationHelper.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
} else {
|
||||
stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f);
|
||||
AnimationHelper.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
AnimationHelper.renderPartOverBone2(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1);
|
||||
}
|
||||
|
||||
this.currentBuffer.getBuffer(this.renderType);
|
||||
|
|
|
@ -103,6 +103,7 @@ public class ModItemModelProvider extends ItemModelProvider {
|
|||
gunBlueprintItem(ModItems.TRACHELIUM_BLUEPRINT);
|
||||
gunBlueprintItem(ModItems.GLOCK_17_BLUEPRINT);
|
||||
gunBlueprintItem(ModItems.GLOCK_18_BLUEPRINT);
|
||||
gunBlueprintItem(ModItems.MP_443_BLUEPRINT);
|
||||
gunBlueprintItem(ModItems.HUNTING_RIFLE_BLUEPRINT);
|
||||
gunBlueprintItem(ModItems.M_79_BLUEPRINT);
|
||||
gunBlueprintItem(ModItems.RPG_BLUEPRINT);
|
||||
|
|
|
@ -67,7 +67,7 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
|||
|
||||
this.tag(ModTags.Items.SMG).add(ModItems.VECTOR.get());
|
||||
|
||||
this.tag(ModTags.Items.HANDGUN).add(ModItems.TRACHELIUM.get(), ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get());
|
||||
this.tag(ModTags.Items.HANDGUN).add(ModItems.TRACHELIUM.get(), ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.MP_443.get());
|
||||
|
||||
this.tag(ModTags.Items.RIFLE).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(),
|
||||
ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get());
|
||||
|
@ -82,9 +82,9 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
|||
this.tag(ModTags.Items.NORMAL_GUN).add(ModItems.ABEKIRI.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(),
|
||||
ModItems.SKS.get(), ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(), ModItems.TRACHELIUM.get(),
|
||||
ModItems.HUNTING_RIFLE.get(), ModItems.NTW_20.get(), ModItems.M_98B.get(), ModItems.SENTINEL.get(), ModItems.M_870.get(), ModItems.MARLIN.get(), ModItems.GLOCK_17.get(),
|
||||
ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get());
|
||||
ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get(), ModItems.MP_443.get());
|
||||
|
||||
this.tag(ModTags.Items.USE_HANDGUN_AMMO).add(ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.VECTOR.get());
|
||||
this.tag(ModTags.Items.USE_HANDGUN_AMMO).add(ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.VECTOR.get(), ModItems.MP_443.get());
|
||||
|
||||
this.tag(ModTags.Items.USE_RIFLE_AMMO).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(), ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.M_60.get(),
|
||||
ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get(), ModItems.RPK.get(), ModItems.TRACHELIUM.get());
|
||||
|
|
|
@ -374,7 +374,7 @@ public class GunEventHandler {
|
|||
}
|
||||
}
|
||||
|
||||
if (stack.getItem() == ModItems.GLOCK_17.get() || stack.getItem() == ModItems.GLOCK_18.get() || stack.getItem() == ModItems.M_1911.get()) {
|
||||
if (stack.getItem() == ModItems.GLOCK_17.get() || stack.getItem() == ModItems.GLOCK_18.get() || stack.getItem() == ModItems.M_1911.get() || stack.getItem() == ModItems.MP_443.get()) {
|
||||
if (data.getInt("ReloadTime") == 9) {
|
||||
data.putBoolean("HoldOpen", false);
|
||||
}
|
||||
|
|
|
@ -6,10 +6,7 @@ import com.atsuishio.superbwarfare.item.armor.*;
|
|||
import com.atsuishio.superbwarfare.item.common.BlueprintItem;
|
||||
import com.atsuishio.superbwarfare.item.common.MaterialPack;
|
||||
import com.atsuishio.superbwarfare.item.common.ammo.*;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Glock18Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.M1911Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Trachelium;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.*;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.M79Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.RpgItem;
|
||||
|
@ -50,6 +47,7 @@ public class ModItems {
|
|||
public static final RegistryObject<Item> TASER = GUNS.register("taser", TaserItem::new);
|
||||
public static final RegistryObject<Item> GLOCK_17 = GUNS.register("glock_17", Glock17Item::new);
|
||||
public static final RegistryObject<Item> GLOCK_18 = GUNS.register("glock_18", Glock18Item::new);
|
||||
public static final RegistryObject<Item> MP_443 = GUNS.register("mp_443", Mp443Item::new);
|
||||
public static final RegistryObject<Item> M_1911 = GUNS.register("m_1911", M1911Item::new);
|
||||
public static final RegistryObject<Item> ABEKIRI = GUNS.register("abekiri", AbekiriItem::new);
|
||||
public static final RegistryObject<Item> TRACHELIUM = GUNS.register("trachelium", Trachelium::new);
|
||||
|
@ -193,6 +191,7 @@ public class ModItems {
|
|||
|
||||
public static final RegistryObject<Item> TRACHELIUM_BLUEPRINT = ITEMS.register("trachelium_blueprint", () -> new BlueprintItem(Rarity.EPIC));
|
||||
public static final RegistryObject<Item> GLOCK_17_BLUEPRINT = ITEMS.register("glock_17_blueprint", () -> new BlueprintItem(Rarity.COMMON));
|
||||
public static final RegistryObject<Item> MP_443_BLUEPRINT = ITEMS.register("mp_443_blueprint", () -> new BlueprintItem(Rarity.COMMON));
|
||||
public static final RegistryObject<Item> GLOCK_18_BLUEPRINT = ITEMS.register("glock_18_blueprint", () -> new BlueprintItem(Rarity.RARE));
|
||||
public static final RegistryObject<Item> HUNTING_RIFLE_BLUEPRINT = ITEMS.register("hunting_rifle_blueprint", () -> new BlueprintItem(Rarity.EPIC));
|
||||
public static final RegistryObject<Item> M_79_BLUEPRINT = ITEMS.register("m_79_blueprint", () -> new BlueprintItem(Rarity.RARE));
|
||||
|
|
|
@ -257,19 +257,26 @@ public class ModSounds {
|
|||
public static final RegistryObject<SoundEvent> GLOCK_17_RELOAD_NORMAL = REGISTRY.register("glock_17_reload_normal", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_17_RELOAD_EMPTY = REGISTRY.register("glock_17_reload_empty", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_empty")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_FIRE_1P = REGISTRY.register("glock_18_fire_1p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_18_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_FIRE_3P = REGISTRY.register("glock_18_fire_3p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_18_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_FAR = REGISTRY.register("glock_18_far", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_18_far")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_VERYFAR = REGISTRY.register("glock_18_veryfar", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_18_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_RELOAD_NORMAL = REGISTRY.register("glock_18_reload_normal", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_18_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_RELOAD_EMPTY = REGISTRY.register("glock_18_reload_empty", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_18_reload_empty")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_FIRE_1P = REGISTRY.register("glock_18_fire_1p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_FIRE_3P = REGISTRY.register("glock_18_fire_3p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_FAR = REGISTRY.register("glock_18_far", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_far")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_VERYFAR = REGISTRY.register("glock_18_veryfar", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_RELOAD_NORMAL = REGISTRY.register("glock_18_reload_normal", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> GLOCK_18_RELOAD_EMPTY = REGISTRY.register("glock_18_reload_empty", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_empty")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> MP_443_FIRE_1P = REGISTRY.register("mp_443_fire_1p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("mp_443_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> MP_443_FIRE_3P = REGISTRY.register("mp_443_fire_3p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("mp_443_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> MP_443_FAR = REGISTRY.register("mp_443_far", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_far")));
|
||||
public static final RegistryObject<SoundEvent> MP_443_VERYFAR = REGISTRY.register("mp_443_veryfar", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> MP_443_RELOAD_NORMAL = REGISTRY.register("mp_443_reload_normal", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> MP_443_RELOAD_EMPTY = REGISTRY.register("mp_443_reload_empty", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_empty")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> M_1911_FIRE_1P = REGISTRY.register("m_1911_fire_1p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("m_1911_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> M_1911_FIRE_3P = REGISTRY.register("m_1911_fire_3p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("m_1911_fire_3p")));
|
||||
public static final RegistryObject<SoundEvent> M_1911_FAR = REGISTRY.register("m_1911_far", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("m_1911_far")));
|
||||
public static final RegistryObject<SoundEvent> M_1911_VERYFAR = REGISTRY.register("m_1911_veryfar", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("m_1911_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> M_1911_RELOAD_NORMAL = REGISTRY.register("m_1911_reload_normal", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("m_1911_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> M_1911_RELOAD_EMPTY = REGISTRY.register("m_1911_reload_empty", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("m_1911_reload_empty")));
|
||||
public static final RegistryObject<SoundEvent> M_1911_RELOAD_NORMAL = REGISTRY.register("m_1911_reload_normal", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> M_1911_RELOAD_EMPTY = REGISTRY.register("m_1911_reload_empty", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("glock_17_reload_empty")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> QBZ_95_FIRE_1P = REGISTRY.register("qbz_95_fire_1p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("qbz_95_fire_1p")));
|
||||
public static final RegistryObject<SoundEvent> QBZ_95_FIRE_3P = REGISTRY.register("qbz_95_fire_3p", () -> SoundEvent.createVariableRangeEvent(ModUtils.loc("qbz_95_fire_3p")));
|
||||
|
|
|
@ -3,10 +3,7 @@ package com.atsuishio.superbwarfare.init;
|
|||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.item.ArmorPlate;
|
||||
import com.atsuishio.superbwarfare.item.ContainerBlockItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Glock18Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.M1911Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.Trachelium;
|
||||
import com.atsuishio.superbwarfare.item.gun.handgun.*;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.JavelinItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.M79Item;
|
||||
import com.atsuishio.superbwarfare.item.gun.launcher.RpgItem;
|
||||
|
@ -48,6 +45,7 @@ public class ModTabs {
|
|||
output.accept(Glock17Item.getGunInstance());
|
||||
output.accept(Glock18Item.getGunInstance());
|
||||
output.accept(M1911Item.getGunInstance());
|
||||
output.accept(Mp443Item.getGunInstance());
|
||||
output.accept(AbekiriItem.getGunInstance());
|
||||
output.accept(Trachelium.getGunInstance());
|
||||
output.accept(VectorItem.getGunInstance());
|
||||
|
|
|
@ -87,6 +87,8 @@ public class ModVillagers {
|
|||
new ItemStack(ModItems.GLOCK_17_BLUEPRINT.get()), 8, 15, 0.05f));
|
||||
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
|
||||
new ItemStack(ModItems.M_1911_BLUEPRINT.get()), 8, 15, 0.05f));
|
||||
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
|
||||
new ItemStack(ModItems.MP_443_BLUEPRINT.get()), 8, 15, 0.05f));
|
||||
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
|
||||
new ItemStack(ModItems.TASER_BLUEPRINT.get()), 8, 15, 0.05f));
|
||||
|
||||
|
|
|
@ -0,0 +1,176 @@
|
|||
package com.atsuishio.superbwarfare.item.gun.handgun;
|
||||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.client.PoseTool;
|
||||
import com.atsuishio.superbwarfare.client.renderer.item.Mp443ItemRenderer;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||
import com.atsuishio.superbwarfare.init.ModTags;
|
||||
import com.atsuishio.superbwarfare.item.AnimatedItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||
import com.atsuishio.superbwarfare.perk.Perk;
|
||||
import com.atsuishio.superbwarfare.perk.PerkHelper;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
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.LivingEntity;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
import software.bernie.geckolib.core.animation.AnimationController;
|
||||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.core.animation.RawAnimation;
|
||||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class Mp443Item extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
public Mp443Item() {
|
||||
super(new Properties().stacksTo(1).rarity(Rarity.COMMON));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initializeClient(Consumer<IClientItemExtensions> consumer) {
|
||||
super.initializeClient(consumer);
|
||||
consumer.accept(new IClientItemExtensions() {
|
||||
private final BlockEntityWithoutLevelRenderer renderer = new Mp443ItemRenderer();
|
||||
|
||||
@Override
|
||||
public BlockEntityWithoutLevelRenderer getCustomRenderer() {
|
||||
return renderer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HumanoidModel.ArmPose getArmPose(LivingEntity entityLiving, InteractionHand hand, ItemStack stack) {
|
||||
return PoseTool.pose(entityLiving, hand, stack);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getTransformType(ItemDisplayContext type) {
|
||||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState fireAnimPredicate(AnimationState<Mp443Item> 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().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_empty"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_normal_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal"));
|
||||
}
|
||||
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.idle"));
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<Mp443Item> 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
|
||||
&& !(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"));
|
||||
} else {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.run"));
|
||||
}
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.idle"));
|
||||
}
|
||||
|
||||
|
||||
@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", 2, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(ModSounds.MP_443_RELOAD_EMPTY.get(), ModSounds.MP_443_RELOAD_NORMAL.get());
|
||||
}
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
ItemStack stack = new ItemStack(ModItems.MP_443.get());
|
||||
GunsTool.initCreativeGun(stack, ModItems.MP_443.getId().getPath());
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAnimationProcedure(String procedure) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/mp443_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGunDisplayName() {
|
||||
return " MP-443";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.HANDGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMagazineReload(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpenBolt(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean bulletInBarrel(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean ejectShell(ItemStack stack) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFireMode() {
|
||||
return FireMode.SEMI.flag;
|
||||
}
|
||||
}
|
|
@ -86,7 +86,7 @@ public class CustomExplosion extends Explosion {
|
|||
|
||||
for (Entity target : level.getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(radius), e -> true).stream().sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))).toList()) {
|
||||
|
||||
if (target instanceof ServerPlayer serverPlayer) {
|
||||
if (target instanceof ServerPlayer serverPlayer && !(target == pSource && pSource.getVehicle() != null)) {
|
||||
ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new ShakeClientMessage(20 + 0.02 * damage, pRadius,10 + 0.03 * damage, pToBlowX, pToBlowY, pToBlowZ));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,14 +27,26 @@
|
|||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": ["easeInElastic", "easeInElastic", "easeInElastic"],
|
||||
"position": ["easeInElastic", "easeInElastic", "easeInElastic"],
|
||||
"scale": 0
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.2": [-6.9958, -33.59868, 16.97772]
|
||||
},
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.2": [-1.75, 0.35, 0.95]
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": ["easeInElastic", "easeInElastic", "easeInElastic"],
|
||||
"position": ["easeInElastic", "easeInElastic", "easeInElastic"],
|
||||
"scale": 0
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.2": [-22.85123, -5.28437, 45.34195],
|
||||
"0.4083": [-37.36283, 0.56643, 63.22664]
|
||||
},
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.2": [-1.15, -0.4, -5.5],
|
||||
"0.4083": [-1.65, -0.4, -4.8]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -58,10 +70,6 @@
|
|||
"0.8": [3.5, -1.75, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": [0, 20, 0],
|
||||
"position": [3.55421, -0.38623, -0.42238]
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": [-0.3, -0.3, 0.3],
|
||||
|
@ -103,8 +111,8 @@
|
|||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": [-30, -12.5, 7.5],
|
||||
"position": [15, -7, 37]
|
||||
"rotation": [5.27614, 52.79666, -90.24139],
|
||||
"position": [15, -14, 37]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -381,20 +389,14 @@
|
|||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.3333": [32.36769, 41.34508, -64.19056],
|
||||
"0.4": [32.36769, 41.34508, -64.19056],
|
||||
"0.9833": [32.36769, 41.34508, -64.19056],
|
||||
"1.0": [48.93435, 38.83283, -61.71522],
|
||||
"1.6667": [48.93435, 38.83283, -61.71522],
|
||||
"0.3333": [50.29539, 45.73453, -56.50534],
|
||||
"1.6667": [50.29539, 45.73453, -56.50534],
|
||||
"1.85": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.3333": [-3.19069, 0.26674, 8.12],
|
||||
"0.4": [-3.19069, 0.26674, 8.12],
|
||||
"0.9833": [-3.19069, 0.26674, 8.12],
|
||||
"1.0": [-3.19741, -3.59435, 4.76412],
|
||||
"1.6667": [-3.19741, -3.59435, 4.76412],
|
||||
"0.3333": [-0.09069, -1.78326, 3.07],
|
||||
"1.6667": [-0.09069, -1.78326, 3.07],
|
||||
"1.85": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -409,6 +411,14 @@
|
|||
"1.5167": [-21, 0, 0],
|
||||
"1.55": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"position": {
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
|
@ -672,22 +682,14 @@
|
|||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.1833": [8.79054, 27.06142, -16.41798],
|
||||
"0.3333": [29.46956, 50.70814, -61.78204],
|
||||
"0.4": [29.46956, 50.70814, -61.78204],
|
||||
"0.9833": [29.46956, 50.70814, -61.78204],
|
||||
"1.0": [24.46409, 34.39391, -25.62434],
|
||||
"1.6667": [24.46409, 34.39391, -25.62434],
|
||||
"0.3333": [24.37037, 15.9389, -21.54738],
|
||||
"1.6667": [24.37037, 15.9389, -21.54738],
|
||||
"1.85": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.1833": [-0.7603, -0.64759, 5.84197],
|
||||
"0.3333": [-3.19062, 0.51479, 7.66796],
|
||||
"0.4": [-3.19062, 0.51479, 7.66796],
|
||||
"0.9833": [-3.19062, 0.51479, 7.66796],
|
||||
"1.0": [-4.03226, -1.03498, 7.44705],
|
||||
"1.6667": [-4.03226, -1.03498, 7.44705],
|
||||
"0.3333": [0.50931, -2.33326, 3.27],
|
||||
"1.6667": [0.50931, -2.33326, 3.27],
|
||||
"1.85": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -720,6 +722,14 @@
|
|||
"1.5167": [-21, 0, 0],
|
||||
"1.55": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"position": {
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
|
@ -1019,35 +1029,29 @@
|
|||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.3333": [32.36769, 41.34508, -64.19056],
|
||||
"0.4": [32.36769, 41.34508, -64.19056],
|
||||
"0.9833": [32.36769, 41.34508, -64.19056],
|
||||
"1.0": [48.93435, 38.83283, -61.71522],
|
||||
"1.6667": [48.93435, 38.83283, -61.71522],
|
||||
"2.0": [-29.05855, 54.15355, 113.83916],
|
||||
"2.0833": [-45.59532, 53.45595, 116.13024],
|
||||
"2.1667": [-50.02173, 43.31997, 128.51988],
|
||||
"2.25": [-50.02173, 43.31997, 128.51988],
|
||||
"2.3667": [-55.02173, 43.31997, 128.51988],
|
||||
"0.3333": [50.29539, 45.73453, -56.50534],
|
||||
"1.6667": [50.29539, 45.73453, -56.50534],
|
||||
"1.8667": [-27.40925, -6.40493, 67.66918],
|
||||
"2.05": [-44.76748, 37.54072, 130.89261],
|
||||
"2.1667": [-62.94009, 48.26643, 143.90391],
|
||||
"2.2333": [-62.94009, 48.26643, 143.90391],
|
||||
"2.3667": [-85.44009, 48.26643, 143.90391],
|
||||
"2.4167": [-55.02173, 43.31997, 128.51988],
|
||||
"2.5": [-43.27389, 30.70848, 85.33789],
|
||||
"2.75": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.3333": [-3.19069, 0.26674, 8.12],
|
||||
"0.4": [-3.19069, 0.26674, 8.12],
|
||||
"0.9833": [-3.19069, 0.26674, 8.12],
|
||||
"1.0": [-3.19741, -3.59435, 4.76412],
|
||||
"1.6667": [-3.19741, -3.59435, 4.76412],
|
||||
"1.7167": [-4.29005, -3.93562, 7.32852],
|
||||
"1.7833": [-5.7839, -2.25389, 8.81802],
|
||||
"2.0333": [-7.81624, -1.14434, 3.37054],
|
||||
"2.1667": [-9.37827, -0.70494, 3.44014],
|
||||
"2.25": [-9.37827, -0.70494, 3.44014],
|
||||
"2.3667": [-9.37827, -0.70494, 6.44014],
|
||||
"2.4167": [-9.37827, -0.70494, 6.44014],
|
||||
"2.5": [-6.32823, -2.3892, 0.11393],
|
||||
"0.3333": [-0.09069, -1.78326, 3.07],
|
||||
"1.6667": [-0.09069, -1.78326, 3.07],
|
||||
"1.7167": [-1.54005, -5.98562, 5.87852],
|
||||
"1.7667": [-4.7839, -6.15389, 3.86802],
|
||||
"2.05": [-3.86, 0.43, 1.89],
|
||||
"2.1667": [-3.47827, 3.14506, 3.54014],
|
||||
"2.2333": [-3.47827, 3.14506, 3.54014],
|
||||
"2.3667": [-3.47827, 3.14506, 7.54014],
|
||||
"2.4167": [-4.37827, -0.70494, 4.44014],
|
||||
"2.5": [-5.32823, -1.3892, 1.11393],
|
||||
"2.75": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -1093,6 +1097,14 @@
|
|||
"1.5167": [-21, 0, 0],
|
||||
"1.55": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"position": {
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
|
@ -1396,6 +1408,7 @@
|
|||
"Righthand": {
|
||||
"rotation": {
|
||||
"1.9333": [0, 0, 0],
|
||||
"2.0167": [-0.42998, -8.83789, -8.81644],
|
||||
"2.1167": [-0.6395, -3.41987, -15.44385],
|
||||
"2.2333": [-0.6395, -3.41987, -15.44385],
|
||||
"2.3667": [-2.58155, -2.2056, -19.32444],
|
||||
|
@ -1405,34 +1418,30 @@
|
|||
"2.7167": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"1.9333": [0, 0, 0],
|
||||
"2.1167": [0.51703, 2.88499, -5.25573],
|
||||
"2.2333": [0.51703, 2.88499, -5.25573],
|
||||
"2.3667": [0.51703, 2.62327, -1.32213],
|
||||
"2.5": [0.51703, 2.62327, -1.32213],
|
||||
"2.5667": [0.51703, 2.62327, -2.07994],
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.9333": [-0.75, 0, 0],
|
||||
"2.0167": [-1.67, 1.31, -2.62],
|
||||
"2.1167": [-1.48297, 2.88499, -5.75573],
|
||||
"2.2333": [-1.48297, 2.88499, -5.75573],
|
||||
"2.3667": [-1.48297, 2.62327, -1.82213],
|
||||
"2.5": [-1.48297, 2.62327, -1.32213],
|
||||
"2.5667": [-1.48297, 2.62327, -2.07994],
|
||||
"2.7167": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.1833": [8.79054, 27.06142, -16.41798],
|
||||
"0.3333": [29.46956, 50.70814, -61.78204],
|
||||
"0.4": [29.46956, 50.70814, -61.78204],
|
||||
"0.9833": [29.46956, 50.70814, -61.78204],
|
||||
"1.0": [24.46409, 34.39391, -25.62434],
|
||||
"1.6667": [24.46409, 34.39391, -25.62434],
|
||||
"0.3333": [24.37037, 15.9389, -21.54738],
|
||||
"1.6667": [24.37037, 15.9389, -21.54738],
|
||||
"1.85": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, 0],
|
||||
"0.1833": [-0.7603, -0.64759, 5.84197],
|
||||
"0.3333": [-3.19062, 0.51479, 7.66796],
|
||||
"0.4": [-3.19062, 0.51479, 7.66796],
|
||||
"0.9833": [-3.19062, 0.51479, 7.66796],
|
||||
"1.0": [-4.03226, -1.03498, 7.44705],
|
||||
"1.6667": [-4.03226, -1.03498, 7.44705],
|
||||
"0.3333": [0.50931, -2.33326, 3.27],
|
||||
"1.6667": [0.50931, -2.33326, 3.27],
|
||||
"1.85": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
|
@ -1491,8 +1500,8 @@
|
|||
"animation_length": 7.2667,
|
||||
"bones": {
|
||||
"Lefthand": {
|
||||
"rotation": [43.35934, 30.31096, -79.62173],
|
||||
"position": [0, 0, -0.58203]
|
||||
"rotation": [-3.66253, 12.91538, 13.30298],
|
||||
"position": [-0.3, -0.8, -2.7]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1750,22 +1759,16 @@
|
|||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [43.35934, 30.31096, -79.62173],
|
||||
"0.3333": [32.36769, 41.34508, -64.19056],
|
||||
"0.4": [32.36769, 41.34508, -64.19056],
|
||||
"0.9833": [32.36769, 41.34508, -64.19056],
|
||||
"1.0": [48.93435, 38.83283, -61.71522],
|
||||
"1.6667": [48.93435, 38.83283, -61.71522],
|
||||
"1.85": [43.35934, 30.31096, -79.62173]
|
||||
"0.1167": [-3.66253, 12.91538, 13.30298],
|
||||
"0.3333": [50.29539, 45.73453, -56.50534],
|
||||
"1.6667": [50.29539, 45.73453, -56.50534],
|
||||
"1.85": [-3.66253, 12.91538, 13.30298]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, -0.58203],
|
||||
"0.3333": [-3.19069, 0.26674, 8.12],
|
||||
"0.4": [-3.19069, 0.26674, 8.12],
|
||||
"0.9833": [-3.19069, 0.26674, 8.12],
|
||||
"1.0": [-3.19741, -3.59435, 4.76412],
|
||||
"1.6667": [-3.19741, -3.59435, 4.76412],
|
||||
"1.85": [0, 0, -0.58203]
|
||||
"0.1167": [-0.3, -0.8, -2.7],
|
||||
"0.3333": [-0.09069, -1.78326, 3.07],
|
||||
"1.6667": [-0.09069, -1.78326, 3.07],
|
||||
"1.85": [-0.3, -0.8, -2.7]
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
|
@ -1797,6 +1800,14 @@
|
|||
"1.5167": [-21, 0, 0],
|
||||
"1.55": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"position": {
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
|
@ -2059,24 +2070,16 @@
|
|||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [43.35934, 30.31096, -79.62173],
|
||||
"0.1833": [8.79054, 27.06142, -16.41798],
|
||||
"0.3333": [29.46956, 50.70814, -61.78204],
|
||||
"0.4": [29.46956, 50.70814, -61.78204],
|
||||
"0.9833": [29.46956, 50.70814, -61.78204],
|
||||
"1.0": [24.46409, 34.39391, -25.62434],
|
||||
"1.6667": [24.46409, 34.39391, -25.62434],
|
||||
"1.85": [43.35934, 30.31096, -79.62173]
|
||||
"0.1167": [-3.66253, 12.91538, 13.30298],
|
||||
"0.3333": [24.37037, 15.9389, -21.54738],
|
||||
"1.6667": [24.37037, 15.9389, -21.54738],
|
||||
"1.85": [-3.66253, 12.91538, 13.30298]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, -0.58203],
|
||||
"0.1833": [-0.7603, -0.64759, 5.84197],
|
||||
"0.3333": [-3.19062, 0.51479, 7.66796],
|
||||
"0.4": [-3.19062, 0.51479, 7.66796],
|
||||
"0.9833": [-3.19062, 0.51479, 7.66796],
|
||||
"1.0": [-4.03226, -1.03498, 7.44705],
|
||||
"1.6667": [-4.03226, -1.03498, 7.44705],
|
||||
"1.85": [0, 0, -0.58203]
|
||||
"0.1167": [-0.3, -0.8, -2.7],
|
||||
"0.3333": [0.50931, -2.33326, 3.27],
|
||||
"1.6667": [0.50931, -2.33326, 3.27],
|
||||
"1.85": [-0.3, -0.8, -2.7]
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
|
@ -2108,6 +2111,14 @@
|
|||
"1.5167": [-21, 0, 0],
|
||||
"1.55": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"position": {
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
|
@ -2136,13 +2147,9 @@
|
|||
"0.8": [3.5, -1.75, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": [0, 20, 0],
|
||||
"position": [3.55421, -0.38623, -0.42238]
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": [43.35934, 30.31096, -79.62173],
|
||||
"position": [0, 0, -0.58203]
|
||||
"rotation": [-3.66253, 12.91538, 13.30298],
|
||||
"position": [-0.3, -0.8, -2.7]
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
|
@ -2445,37 +2452,31 @@
|
|||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [43.35934, 30.31096, -79.62173],
|
||||
"0.3333": [32.36769, 41.34508, -64.19056],
|
||||
"0.4": [32.36769, 41.34508, -64.19056],
|
||||
"0.9833": [32.36769, 41.34508, -64.19056],
|
||||
"1.0": [48.93435, 38.83283, -61.71522],
|
||||
"1.6667": [48.93435, 38.83283, -61.71522],
|
||||
"2.0": [-29.05855, 54.15355, 113.83916],
|
||||
"2.0833": [-45.59532, 53.45595, 116.13024],
|
||||
"2.1667": [-50.02173, 43.31997, 128.51988],
|
||||
"2.25": [-50.02173, 43.31997, 128.51988],
|
||||
"2.3667": [-55.02173, 43.31997, 128.51988],
|
||||
"0.1167": [-3.66253, 12.91538, 13.30298],
|
||||
"0.3333": [50.29539, 45.73453, -56.50534],
|
||||
"1.6667": [50.29539, 45.73453, -56.50534],
|
||||
"1.8667": [-27.40925, -6.40493, 67.66918],
|
||||
"2.05": [-44.76748, 37.54072, 130.89261],
|
||||
"2.1667": [-62.94009, 48.26643, 143.90391],
|
||||
"2.2333": [-62.94009, 48.26643, 143.90391],
|
||||
"2.3667": [-85.44009, 48.26643, 143.90391],
|
||||
"2.4167": [-55.02173, 43.31997, 128.51988],
|
||||
"2.5": [-43.27389, 30.70848, 85.33789],
|
||||
"2.75": [43.35934, 30.31096, -79.62173]
|
||||
"2.75": [-3.66253, 12.91538, 13.30298]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, -0.58203],
|
||||
"0.3333": [-3.19069, 0.26674, 8.12],
|
||||
"0.4": [-3.19069, 0.26674, 8.12],
|
||||
"0.9833": [-3.19069, 0.26674, 8.12],
|
||||
"1.0": [-3.19741, -3.59435, 4.76412],
|
||||
"1.6667": [-3.19741, -3.59435, 4.76412],
|
||||
"1.7167": [-4.29005, -3.93562, 7.32852],
|
||||
"1.7833": [-5.7839, -2.25389, 8.81802],
|
||||
"2.0333": [-7.81624, -1.14434, 3.37054],
|
||||
"2.1667": [-9.37827, -0.70494, 3.44014],
|
||||
"2.25": [-9.37827, -0.70494, 3.44014],
|
||||
"2.3667": [-9.37827, -0.70494, 6.44014],
|
||||
"2.4167": [-9.37827, -0.70494, 6.44014],
|
||||
"2.5": [-6.32823, -2.3892, 0.11393],
|
||||
"2.75": [0, 0, -0.58203]
|
||||
"0.1167": [-0.3, -0.8, -2.7],
|
||||
"0.3333": [-0.09069, -1.78326, 3.07],
|
||||
"1.6667": [-0.09069, -1.78326, 3.07],
|
||||
"1.7167": [-1.54005, -5.98562, 5.87852],
|
||||
"1.7667": [-4.7839, -6.15389, 3.86802],
|
||||
"2.05": [-3.86, 0.43, 1.89],
|
||||
"2.1667": [-3.47827, 3.14506, 3.54014],
|
||||
"2.2333": [-3.47827, 3.14506, 3.54014],
|
||||
"2.3667": [-3.47827, 3.14506, 7.54014],
|
||||
"2.4167": [-4.37827, -0.70494, 4.44014],
|
||||
"2.5": [-5.32823, -1.3892, 1.11393],
|
||||
"2.75": [-0.3, -0.8, -2.7]
|
||||
}
|
||||
},
|
||||
"bolt": {
|
||||
|
@ -2520,6 +2521,14 @@
|
|||
"1.5167": [-21, 0, 0],
|
||||
"1.55": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"position": {
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
|
@ -2823,6 +2832,7 @@
|
|||
"Righthand": {
|
||||
"rotation": {
|
||||
"1.9333": [0, 0, 0],
|
||||
"2.0167": [-0.42998, -8.83789, -8.81644],
|
||||
"2.1167": [-0.6395, -3.41987, -15.44385],
|
||||
"2.2333": [-0.6395, -3.41987, -15.44385],
|
||||
"2.3667": [-2.58155, -2.2056, -19.32444],
|
||||
|
@ -2832,35 +2842,31 @@
|
|||
"2.7167": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"1.9333": [0, 0, 0],
|
||||
"2.1167": [0.51703, 2.88499, -5.25573],
|
||||
"2.2333": [0.51703, 2.88499, -5.25573],
|
||||
"2.3667": [0.51703, 2.62327, -1.32213],
|
||||
"2.5": [0.51703, 2.62327, -1.32213],
|
||||
"2.5667": [0.51703, 2.62327, -2.07994],
|
||||
"0.1": [0, 0, 0],
|
||||
"0.2": [-0.75, 0, 0],
|
||||
"1.7667": [-0.75, 0, 0],
|
||||
"1.9333": [-0.75, 0, 0],
|
||||
"2.0167": [-1.67, 1.31, -2.62],
|
||||
"2.1167": [-1.48297, 2.88499, -5.75573],
|
||||
"2.2333": [-1.48297, 2.88499, -5.75573],
|
||||
"2.3667": [-1.48297, 2.62327, -1.82213],
|
||||
"2.5": [-1.48297, 2.62327, -1.32213],
|
||||
"2.5667": [-1.48297, 2.62327, -2.07994],
|
||||
"2.7167": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.1167": [43.35934, 30.31096, -79.62173],
|
||||
"0.1833": [8.79054, 27.06142, -16.41798],
|
||||
"0.3333": [29.46956, 50.70814, -61.78204],
|
||||
"0.4": [29.46956, 50.70814, -61.78204],
|
||||
"0.9833": [29.46956, 50.70814, -61.78204],
|
||||
"1.0": [24.46409, 34.39391, -25.62434],
|
||||
"1.6667": [24.46409, 34.39391, -25.62434],
|
||||
"1.85": [43.35934, 30.31096, -79.62173]
|
||||
"0.1167": [-3.66253, 12.91538, 13.30298],
|
||||
"0.3333": [24.37037, 15.9389, -21.54738],
|
||||
"1.6667": [24.37037, 15.9389, -21.54738],
|
||||
"1.85": [-3.66253, 12.91538, 13.30298]
|
||||
},
|
||||
"position": {
|
||||
"0.1167": [0, 0, -0.58203],
|
||||
"0.1833": [-0.7603, -0.64759, 5.84197],
|
||||
"0.3333": [-3.19062, 0.51479, 7.66796],
|
||||
"0.4": [-3.19062, 0.51479, 7.66796],
|
||||
"0.9833": [-3.19062, 0.51479, 7.66796],
|
||||
"1.0": [-4.03226, -1.03498, 7.44705],
|
||||
"1.6667": [-4.03226, -1.03498, 7.44705],
|
||||
"1.85": [0, 0, -0.58203]
|
||||
"0.1167": [-0.3, -0.8, -2.7],
|
||||
"0.3333": [0.50931, -2.33326, 3.27],
|
||||
"1.6667": [0.50931, -2.33326, 3.27],
|
||||
"1.85": [-0.3, -0.8, -2.7]
|
||||
}
|
||||
},
|
||||
"bolt": {
|
||||
|
|
|
@ -16,337 +16,206 @@
|
|||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.0833": {
|
||||
"vector": [2.5, -4.08, 1.84]
|
||||
"0.1667": {
|
||||
"post": [8.55, -3.98, 1.84],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [0.25, -7.5, -15],
|
||||
"easing": "easeInElastic"
|
||||
"post": [0.25, -22.25, -24],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [-7.25, -7.5, -15],
|
||||
"easing": "easeInElastic"
|
||||
"post": [-7.25, -22.25, -24],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [-5.25, -7.51, -15]
|
||||
"post": [-5.25, -22.26, -24],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.625": {
|
||||
"vector": [-0.85, -8.89, -4.1],
|
||||
"easing": "easeInOutSine"
|
||||
"post": [-0.85, -23.64, -13.1],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.9167": {
|
||||
"vector": [-7.23, -11.05, -8.02]
|
||||
"post": [-7.23, -25.8, -17.02],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.25": {
|
||||
"vector": [-1.46, -26.71, -16.61]
|
||||
"post": [0.54, -26.71, -25.61],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.6667": {
|
||||
"vector": [-11.38143, -25.34825, -17.46108],
|
||||
"easing": "easeInElastic"
|
||||
"post": [-0.88143, -25.34825, -26.46108],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.9167": {
|
||||
"vector": [-23.00432, -21.76626, -8.7001]
|
||||
"post": [-9.00432, -21.76626, -16.2001],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.0": {
|
||||
"vector": [-19.73837, -24.77408, -13.27127]
|
||||
"post": [-5.73837, -24.77408, -20.77127],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.0833": {
|
||||
"vector": [-11.72334, -30.128, -11.30744]
|
||||
"post": [-6.38588, -29.58558, -1.50662],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.3333": {
|
||||
"vector": [-0.11112, -2.35652, 10.98841]
|
||||
"post": [-0.11112, -2.35652, 10.98841],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.4583": {
|
||||
"vector": [-0.0016, -0.13105, -1.38954]
|
||||
"post": [-0.0016, -0.13105, -1.38954],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.5833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInOutQuad"
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0.25, 3.25],
|
||||
"easing": "easeInElastic"
|
||||
"post": [0, 0.25, 3.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"vector": [-0.03, 0.43, 0.64],
|
||||
"easing": "easeOutSine"
|
||||
"post": [0.17, 0.43, 0.64],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": {
|
||||
"vector": [-0.06, 0.56, 2.21016]
|
||||
"post": [-0.06, 0.56, 2.21016],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [-0.29, 0.3, 2.09],
|
||||
"easing": "easeInOutSine"
|
||||
"post": [-0.29, 0.3, 2.09],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"vector": [-0.6, 0.53, 1.95]
|
||||
"post": [-0.25, 0.53, 1.95],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.4167": {
|
||||
"vector": [-0.9, 0.70547, 2]
|
||||
"post": [-0.3, 0.70547, 2],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.9167": {
|
||||
"vector": [-1, 0.35, 1.5]
|
||||
"post": [-0.2, 0.35, 1.5],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.0": {
|
||||
"vector": [-0.92461, 0.40317, 1.28968]
|
||||
"post": [-0.92461, 0.40317, 1.28968],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.0833": {
|
||||
"vector": [-1.31413, 0.00682, 2.2102]
|
||||
"post": [-1.31413, 0.00682, 2.2102],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.2917": {
|
||||
"vector": [0, 0, -1]
|
||||
"post": [0, -0.25, -1],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.375": {
|
||||
"vector": [0, 0, 0.93]
|
||||
"post": [0, 0.2, 0.93],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.5833": {
|
||||
"vector": [0, 0, 0]
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"0.0833": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4583": {
|
||||
"vector": [17.28178, 11.81938, -13.74589],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [17.89, 13.29, -10.54],
|
||||
"easing": "easeInOutSine"
|
||||
},
|
||||
"0.9167": {
|
||||
"vector": [-15.26666, -7.21079, -32.09116]
|
||||
},
|
||||
"1.3333": {
|
||||
"vector": [11.33836, 15.57679, -32.68369],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"1.5833": {
|
||||
"vector": [21.25681, 14.51031, -31.92152]
|
||||
},
|
||||
"1.625": {
|
||||
"vector": [22.15477, 15.58476, -35.05004]
|
||||
},
|
||||
"1.6667": {
|
||||
"vector": [24.59206, 11.83166, -28.91263]
|
||||
},
|
||||
"1.75": {
|
||||
"vector": [28.1312, 15.12708, -33.43052]
|
||||
},
|
||||
"1.8333": {
|
||||
"vector": [32.67296, 7.36719, -31.31941],
|
||||
"easing": "linear"
|
||||
},
|
||||
"2.0": {
|
||||
"vector": [31.94221, 8.54088, -32.21219]
|
||||
},
|
||||
"2.0833": {
|
||||
"vector": [35.21697, 9.07234, -33.53801],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"2.25": {
|
||||
"vector": [10.49188, 18.26991, -36.52254]
|
||||
},
|
||||
"2.4167": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
"0.0833": [0, 0, 0],
|
||||
"0.4167": [-31.86957, -19.37363, 82.48453],
|
||||
"0.5": [-31.86957, -19.37363, 82.48453],
|
||||
"0.9167": [-15.26666, -7.21079, -32.09116],
|
||||
"1.3333": [-11.99301, 13.76329, -22.8141],
|
||||
"1.5": [-11.99301, 13.76329, -22.8141],
|
||||
"1.5833": [-28.82126, -23.56361, 62.7473],
|
||||
"1.625": [-27.43413, -24.53569, 58.73275],
|
||||
"1.6667": [-33.07026, -26.56442, 69.10617],
|
||||
"1.75": [-28.78617, -30.44277, 61.77328],
|
||||
"1.8333": [-42.377, -33.41831, 75.18478],
|
||||
"2.0": [-40.19312, -33.04337, 72.40808],
|
||||
"2.0833": [-31.86957, -19.37363, 82.48453],
|
||||
"2.25": [-9.57051, -10.79639, 27.95699],
|
||||
"2.4167": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0833": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [-0.19579, -2.08768, -5.5753],
|
||||
"easing": "easeOutBack"
|
||||
},
|
||||
"0.5417": {
|
||||
"vector": [0, -1.82, -11.4],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.7083": {
|
||||
"vector": [6.6, -1.87, 0.6]
|
||||
},
|
||||
"0.9167": {
|
||||
"vector": [7.55491, -9.57868, 6.1249]
|
||||
},
|
||||
"1.3333": {
|
||||
"vector": [10, -9.37, 6.62],
|
||||
"easing": "easeInOutBack"
|
||||
},
|
||||
"1.8333": {
|
||||
"vector": [2.6, -1.9, -12.4],
|
||||
"easing": "linear"
|
||||
},
|
||||
"2.0": {
|
||||
"vector": [2.8, -1.9, -9.8]
|
||||
},
|
||||
"2.0833": {
|
||||
"vector": [3, -1.9, -10.2],
|
||||
"easing": "easeInOutExpo"
|
||||
},
|
||||
"2.4167": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
"0.0833": [0, 0, 0],
|
||||
"0.4167": [-0.19579, 0.61232, -3.5753],
|
||||
"0.5": [0, -1.82, -14.4],
|
||||
"0.7083": [6.6, -1.87, 0.6],
|
||||
"0.9167": [7.55491, -9.57868, 6.1249],
|
||||
"1.3333": [9.45, -8.82, 6.62],
|
||||
"1.5": [9.45, -8.82, 6.62],
|
||||
"1.8333": [-0.9, 1.1, -8.4],
|
||||
"2.0": [-0.9, 1.1, -6.4],
|
||||
"2.0833": [-0.19579, 0.61232, -5.5753],
|
||||
"2.4167": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"head": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"1.25": {
|
||||
"vector": [-380, 0, 0]
|
||||
},
|
||||
"1.3333": {
|
||||
"vector": [-30.68206, -27.03402, 52.54628]
|
||||
},
|
||||
"1.8333": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"2.0833": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4167": [0, 0, 0],
|
||||
"1.25": [-380, 0, 0],
|
||||
"1.3333": [-30.68206, -27.03402, 52.54628],
|
||||
"1.5": [-30.68206, -27.03402, 52.54628],
|
||||
"1.8333": [0, 0, 0],
|
||||
"2.0833": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0.0441, 0.16396, -0.02671]
|
||||
},
|
||||
"0.4583": {
|
||||
"vector": [0.26827, 0.95056, -1.6981]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [-0.36805, 1.03264, -6.9702]
|
||||
},
|
||||
"0.5417": {
|
||||
"vector": [-1.4502, 0.88538, -14.51111]
|
||||
},
|
||||
"0.5833": {
|
||||
"vector": [-3.04715, 1.19976, -21.54721]
|
||||
},
|
||||
"0.625": {
|
||||
"vector": [-4.25545, 0.3486, -27.45078]
|
||||
},
|
||||
"0.6667": {
|
||||
"vector": [-5.50466, -2.79569, -33.3676]
|
||||
},
|
||||
"0.7083": {
|
||||
"vector": [-6.97396, -6.91091, -39.16939]
|
||||
},
|
||||
"0.75": {
|
||||
"vector": [-8.75181, -12.66452, -44.72621],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.7917": {
|
||||
"vector": [-10.84411, -20.08928, -49.88713]
|
||||
},
|
||||
"0.8333": {
|
||||
"vector": [-13.34003, -29.71342, -54.55761]
|
||||
},
|
||||
"0.875": {
|
||||
"vector": [-16.22188, -40.6649, -58.75257]
|
||||
},
|
||||
"0.9167": {
|
||||
"vector": [-19.65388, -53.69834, -62.25089]
|
||||
},
|
||||
"0.9583": {
|
||||
"vector": [-26.60318, -67.42803, -66.09012]
|
||||
},
|
||||
"1.0": {
|
||||
"vector": [-35.3251, -86.10628, -69.13573]
|
||||
},
|
||||
"1.0417": {
|
||||
"vector": [-45.47726, -106.73784, -71.55172]
|
||||
},
|
||||
"1.0833": {
|
||||
"vector": [-57.82789, -132.39146, -73.01751]
|
||||
},
|
||||
"1.125": {
|
||||
"vector": [-72.39921, -162.95675, -73.13111]
|
||||
},
|
||||
"1.1667": {
|
||||
"vector": [-89.34055, -197.99001, -72.07032]
|
||||
},
|
||||
"1.2083": {
|
||||
"vector": [-109.12621, -239.05802, -69.27181]
|
||||
},
|
||||
"1.3333": {
|
||||
"vector": [10, -9, 13]
|
||||
},
|
||||
"1.8333": {
|
||||
"vector": [0, 0, -2.09375],
|
||||
"easing": "linear"
|
||||
},
|
||||
"2.0833": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInElastic"
|
||||
}
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4167": [0.0441, 0.16396, -0.02671],
|
||||
"0.4583": [0.26827, 0.95056, -1.6981],
|
||||
"0.5": [-0.36805, 1.03264, -6.9702],
|
||||
"0.5417": [-1.4502, 0.88538, -14.51111],
|
||||
"0.5833": [-3.04715, 1.19976, -21.54721],
|
||||
"0.625": [-4.25545, 0.3486, -27.45078],
|
||||
"0.6667": [-5.50466, -2.79569, -33.3676],
|
||||
"0.7083": [-6.97396, -6.91091, -39.16939],
|
||||
"0.75": [-8.75181, -12.66452, -44.72621],
|
||||
"0.7917": [-10.84411, -20.08928, -49.88713],
|
||||
"0.8333": [-13.34003, -29.71342, -54.55761],
|
||||
"0.875": [-16.22188, -40.6649, -58.75257],
|
||||
"0.9167": [-19.65388, -53.69834, -62.25089],
|
||||
"0.9583": [-26.60318, -67.42803, -66.09012],
|
||||
"1.0": [-35.3251, -86.10628, -69.13573],
|
||||
"1.0417": [-45.47726, -106.73784, -71.55172],
|
||||
"1.0833": [-57.82789, -132.39146, -73.01751],
|
||||
"1.125": [-72.39921, -162.95675, -73.13111],
|
||||
"1.1667": [-89.34055, -197.99001, -72.07032],
|
||||
"1.2083": [-109.12621, -239.05802, -69.27181],
|
||||
"1.3333": [10, -9, 13],
|
||||
"1.5": [10, -9, 13],
|
||||
"1.8333": [0, 0, -2.09375],
|
||||
"2.0833": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [0, 0, -2],
|
||||
"easing": "easeInElastic",
|
||||
"easingArgs": [2]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [1, 1, 1],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.5417": {
|
||||
"vector": [-0.5, -1, -1],
|
||||
"easing": "linear"
|
||||
},
|
||||
"0.6667": {
|
||||
"vector": [0.25, 0, -2],
|
||||
"easing": "linear"
|
||||
},
|
||||
"1.1667": {
|
||||
"vector": [0.59, 0, -0.82]
|
||||
},
|
||||
"1.625": {
|
||||
"vector": [0.33, 0.67, -1.2]
|
||||
},
|
||||
"2.0": {
|
||||
"vector": [0, 1, -1.3]
|
||||
},
|
||||
"2.0417": {
|
||||
"vector": [-1, -2, 1],
|
||||
"easing": "linear"
|
||||
},
|
||||
"2.125": {
|
||||
"vector": [1, 1, 0.2],
|
||||
"easing": "linear"
|
||||
},
|
||||
"2.1667": {
|
||||
"vector": [0.5, -1, 0.8],
|
||||
"easing": "linear"
|
||||
},
|
||||
"2.3333": {
|
||||
"vector": [-0.125, 0, -0.5]
|
||||
},
|
||||
"2.5833": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
"0.0": [0, 0, 0],
|
||||
"0.3333": [0, 0, -2],
|
||||
"0.4167": [1, 1, 1],
|
||||
"0.5417": [-0.5, -1, -1],
|
||||
"0.6667": [0.25, 0, -2],
|
||||
"1.1667": [0.59, 0, -0.82],
|
||||
"1.625": [0.33, 0.67, -1.2],
|
||||
"2.0": [0, 1, -1.3],
|
||||
"2.0417": [-1, -2, 1],
|
||||
"2.125": [1, 1, 0.2],
|
||||
"2.1667": [0.5, -1, 0.8],
|
||||
"2.3333": [-0.125, 0, -0.5],
|
||||
"2.5833": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -361,53 +230,25 @@
|
|||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [27.21312, -47.42646, -2.0218]
|
||||
},
|
||||
"0.0833": {
|
||||
"vector": [12.5, -15, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [3.48268, 0.40464, 8.20687]
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, -2]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
"0.0": [27.21312, -47.42646, -2.0218],
|
||||
"0.0833": [12.5, -15, 0],
|
||||
"0.2083": [3.48268, 0.40464, 8.20687],
|
||||
"0.4167": [0, 0, -2],
|
||||
"0.5": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [3, -17.3, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0, 0, -1.65]
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [0, 0, 0.93]
|
||||
},
|
||||
"0.5": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
"0.0": [3, -17.3, 0],
|
||||
"0.2083": [0, 0, -1.65],
|
||||
"0.2917": [0, 0, 0.93],
|
||||
"0.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2083": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.2917": {
|
||||
"vector": [0.25, -0.5, 0.5],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.4167": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeOutSine"
|
||||
}
|
||||
"0.0": [0, 0, 0],
|
||||
"0.2083": [0, 0, 0],
|
||||
"0.2917": [0.25, -0.5, 0.5],
|
||||
"0.4167": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -418,71 +259,27 @@
|
|||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [4.74287, -58.94632, 9.89514]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [-8.55104, -59.60571, 19.61648],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [-8.58141, -58.99717, 19.60323],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.6": {
|
||||
"vector": [-0.82277, -58.8651, 9.93666],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.8": {
|
||||
"vector": [4.74287, -58.94632, 9.89514]
|
||||
}
|
||||
"0.0": [4.74287, -58.94632, 9.89514],
|
||||
"0.2": [-8.55104, -59.60571, 19.61648],
|
||||
"0.4": [-8.58141, -58.99717, 19.60323],
|
||||
"0.6": [-0.82277, -58.8651, 9.93666],
|
||||
"0.8": [4.74287, -58.94632, 9.89514]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [5.5, -3, 0]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [3.75, -2.5, 0],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [2.5, -3, 0],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.6": {
|
||||
"vector": [4.25, -2.5, 0],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.8": {
|
||||
"vector": [5.5, -3, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"Righthand": {
|
||||
"rotation": {
|
||||
"vector": [0, 12.5, 0]
|
||||
},
|
||||
"position": {
|
||||
"vector": [2.19838, 0, -0.07415]
|
||||
"0.0": [5.5, -3, 0],
|
||||
"0.2": [3.75, -2.5, 0],
|
||||
"0.4": [2.5, -3, 0],
|
||||
"0.6": [4.25, -2.5, 0],
|
||||
"0.8": [5.5, -3, 0]
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
},
|
||||
"0.2": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
},
|
||||
"0.4": {
|
||||
"vector": [-0.3, 0.3, 0.3]
|
||||
},
|
||||
"0.6": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
},
|
||||
"0.8": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
}
|
||||
"0.0": [-0.3, -0.3, 0.3],
|
||||
"0.2": [0.3, 0, -0.3],
|
||||
"0.4": [-0.3, 0.3, 0.3],
|
||||
"0.6": [0.3, 0, -0.3],
|
||||
"0.8": [-0.3, -0.3, 0.3]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -493,70 +290,30 @@
|
|||
"bones": {
|
||||
"0": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-64.40359, 6.54216, -8.29677]
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [-63.64549, 6.90094, -2.09726],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-64.40359, 6.54216, -8.29677],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [-65.4022, 6.21514, -14.3956],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [-64.40359, 6.54216, -8.29677],
|
||||
"easing": "easeOutSine"
|
||||
}
|
||||
"0.0": [-64.40359, 6.54216, -8.29677],
|
||||
"0.175": [-63.64549, 6.90094, -2.09726],
|
||||
"0.35": [-64.40359, 6.54216, -8.29677],
|
||||
"0.525": [-65.4022, 6.21514, -14.3956],
|
||||
"0.7": [-64.40359, 6.54216, -8.29677]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [-3.5, 2, 0],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [-4.5, 4, 0],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-5.5, 2, 0],
|
||||
"easing": "easeOutSine"
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [-4.5, 4, 0],
|
||||
"easing": "easeInSine"
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [-3.5, 2, 0],
|
||||
"easing": "easeOutSine"
|
||||
}
|
||||
"0.0": [-3.5, 2, 0],
|
||||
"0.175": [-4.5, 4, 0],
|
||||
"0.35": [-5.5, 2, 0],
|
||||
"0.525": [-4.5, 4, 0],
|
||||
"0.7": [-3.5, 2, 0]
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
},
|
||||
"0.175": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
},
|
||||
"0.35": {
|
||||
"vector": [-0.3, 0.3, 0.3]
|
||||
},
|
||||
"0.525": {
|
||||
"vector": [0.3, 0, -0.3]
|
||||
},
|
||||
"0.7": {
|
||||
"vector": [-0.3, -0.3, 0.3]
|
||||
}
|
||||
"0.0": [-0.3, -0.3, 0.3],
|
||||
"0.175": [0.3, 0, -0.3],
|
||||
"0.35": [-0.3, 0.3, 0.3],
|
||||
"0.525": [0.3, 0, -0.3],
|
||||
"0.7": [-0.3, -0.3, 0.3]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"geckolib_format_version": 2
|
||||
}
|
||||
}
|
|
@ -19826,19 +19826,19 @@
|
|||
{
|
||||
"name": "Lefthand",
|
||||
"parent": "magazine",
|
||||
"pivot": [6.23575, -6.41469, -1.32145],
|
||||
"rotation": [86.71153, -50.16741, -123.46245],
|
||||
"pivot": [1.28636, -0.07038, -7.39903],
|
||||
"rotation": [-88.72948, -51.54928, -132.8024],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [4.63575, -6.41469, -3.07145],
|
||||
"size": [3, 12, 4],
|
||||
"origin": [-0.71364, -1.07038, -9.39903],
|
||||
"size": [4, 12, 4],
|
||||
"uv": {
|
||||
"north": {"uv": [35.5, 31], "uv_size": [0.25, 0.25]},
|
||||
"east": {"uv": [35.5, 31], "uv_size": [0.25, 0.25]},
|
||||
"south": {"uv": [35.5, 31], "uv_size": [0.25, 0.25]},
|
||||
"west": {"uv": [35.5, 31], "uv_size": [0.25, 0.25]},
|
||||
"up": {"uv": [35.75, 31.25], "uv_size": [-0.25, -0.25]},
|
||||
"down": {"uv": [35.75, 31.25], "uv_size": [-0.25, -0.25]}
|
||||
"north": {"uv": [9.5, 35.5], "uv_size": [-0.5, -0.5]},
|
||||
"east": {"uv": [9.5, 35.5], "uv_size": [-0.5, -0.5]},
|
||||
"south": {"uv": [9.5, 35.5], "uv_size": [-0.5, -0.5]},
|
||||
"west": {"uv": [10.5, 34], "uv_size": [-0.5, -0.5]},
|
||||
"up": {"uv": [9, 35], "uv_size": [0.5, 0.5]},
|
||||
"down": {"uv": [9, 35], "uv_size": [0.5, 0.5]}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -22120,19 +22120,19 @@
|
|||
{
|
||||
"name": "Righthand",
|
||||
"parent": "0",
|
||||
"pivot": [-3.9878, -4.75077, 12.17668],
|
||||
"rotation": [107.23447, 13.26214, -173.79815],
|
||||
"pivot": [-0.60468, -1.33634, 1.54587],
|
||||
"rotation": [-75.81552, 9.63414, -177.43973],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-5.9878, -3.75077, 10.17668],
|
||||
"origin": [-2.60468, -2.33634, -0.45413],
|
||||
"size": [4, 12, 4],
|
||||
"uv": {
|
||||
"north": {"uv": [4, 4], "uv_size": [0.25, 0.25]},
|
||||
"east": {"uv": [4, 4], "uv_size": [0.25, 0.25]},
|
||||
"south": {"uv": [4, 4], "uv_size": [0.25, 0.25]},
|
||||
"west": {"uv": [4, 4], "uv_size": [0.25, 0.25]},
|
||||
"up": {"uv": [4.25, 4.25], "uv_size": [-0.25, -0.25]},
|
||||
"down": {"uv": [4.25, 4.25], "uv_size": [-0.25, -0.25]}
|
||||
"north": {"uv": [10.5, 31], "uv_size": [-0.5, 0.5]},
|
||||
"east": {"uv": [10.5, 31], "uv_size": [-0.5, 0.5]},
|
||||
"south": {"uv": [10.5, 31], "uv_size": [-0.5, 0.5]},
|
||||
"west": {"uv": [10.5, 31], "uv_size": [-0.5, 0.5]},
|
||||
"up": {"uv": [10, 31.5], "uv_size": [0.5, -0.5]},
|
||||
"down": {"uv": [10, 31.5], "uv_size": [0.5, -0.5]}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
3134
src/main/resources/assets/superbwarfare/geo/mp443.geo.json
Normal file
3134
src/main/resources/assets/superbwarfare/geo/mp443.geo.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -6,7 +6,7 @@
|
|||
"identifier": "geometry.taser",
|
||||
"texture_width": 32,
|
||||
"texture_height": 32,
|
||||
"visible_bounds_width": 3,
|
||||
"visible_bounds_width": 4,
|
||||
"visible_bounds_height": 3,
|
||||
"visible_bounds_offset": [0, 0.5, 0]
|
||||
},
|
||||
|
@ -167,11 +167,11 @@
|
|||
{
|
||||
"name": "Righthand",
|
||||
"parent": "0",
|
||||
"pivot": [-2.4, -2.9, 11.5],
|
||||
"rotation": [96.64168, 7.15102, -177.73292],
|
||||
"pivot": [-1.15468, -2.08634, -0.45413],
|
||||
"rotation": [-76.32882, 10.3564, 179.6036],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-4.4, -2.9, 9.5],
|
||||
"origin": [-3.15468, -3.08634, -2.45413],
|
||||
"size": [4, 12, 4],
|
||||
"uv": {
|
||||
"north": {"uv": [1.25, 30], "uv_size": [-1.25, 2]},
|
||||
|
@ -187,14 +187,12 @@
|
|||
{
|
||||
"name": "Lefthand",
|
||||
"parent": "0",
|
||||
"pivot": [2.2, -6.3, 9.6],
|
||||
"rotation": [109.69635, -4.47536, 178.48092],
|
||||
"pivot": [0.4046, -2.34567, -1.07012],
|
||||
"rotation": [-68.00049, -19.4896, 179.16409],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [0.6, -6.3, 7.9],
|
||||
"origin": [-1.5954, -3.34567, -3.07012],
|
||||
"size": [4, 12, 4],
|
||||
"pivot": [2.6, -0.3, 9.9],
|
||||
"rotation": [0, 17, 0],
|
||||
"uv": {
|
||||
"north": {"uv": [1.25, 32], "uv_size": [-1.25, -2]},
|
||||
"east": {"uv": [1.25, 32], "uv_size": [-1.25, -2]},
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
"item.superbwarfare.glock_17": "GLOCK-17",
|
||||
"item.superbwarfare.glock_18": "GLOCK-18",
|
||||
"item.superbwarfare.m_1911": "M1911A1",
|
||||
"item.superbwarfare.mp_443": "MP-443",
|
||||
"item.superbwarfare.qbz_95": "QBZ-95-1",
|
||||
"item.superbwarfare.k_98": "KAR-98K",
|
||||
"item.superbwarfare.mosin_nagant": "Mosin Nagant",
|
||||
|
@ -93,6 +94,7 @@
|
|||
"item.superbwarfare.taser_blueprint": "TASER Blueprint",
|
||||
"item.superbwarfare.glock_17_blueprint": "GLOCK-17 Blueprint",
|
||||
"item.superbwarfare.glock_18_blueprint": "GLOCK-18 Blueprint",
|
||||
"item.superbwarfare.mp_443_blueprint": "Mp-443 Blueprint",
|
||||
"item.superbwarfare.m_1911_blueprint": "M1911 Blueprint",
|
||||
"item.superbwarfare.qbz_95_blueprint": "QBZ-95-1 Blueprint",
|
||||
"item.superbwarfare.k_98_blueprint": "KAR-98K Blueprint",
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
"item.superbwarfare.glock_17": "格洛克17手枪",
|
||||
"item.superbwarfare.glock_18": "格洛克18手枪",
|
||||
"item.superbwarfare.m_1911": "M1911手枪",
|
||||
"item.superbwarfare.mp_443": "MP-443手枪",
|
||||
"item.superbwarfare.qbz_95": "95-1式自动步枪",
|
||||
"item.superbwarfare.k_98": "KAR-98K",
|
||||
"item.superbwarfare.mosin_nagant": "莫辛纳甘",
|
||||
|
@ -93,6 +94,7 @@
|
|||
"item.superbwarfare.taser_blueprint": "泰瑟枪蓝图",
|
||||
"item.superbwarfare.glock_17_blueprint": "格洛克17手枪蓝图",
|
||||
"item.superbwarfare.glock_18_blueprint": "格洛克18手枪蓝图",
|
||||
"item.superbwarfare.mp_443_blueprint": "Mp-443手枪蓝图",
|
||||
"item.superbwarfare.m_1911_blueprint": "M1911手枪蓝图",
|
||||
"item.superbwarfare.qbz_95_blueprint": "95-1式自动步枪蓝图",
|
||||
"item.superbwarfare.k_98_blueprint": "KAR-98K蓝图",
|
||||
|
|
|
@ -0,0 +1,165 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"0": "superbwarfare:item/mp443_3d",
|
||||
"particle": "superbwarfare:item/mp443_3d"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [7.1, 7, 9.5],
|
||||
"to": [8.9, 8, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 8, 7, 8.5], "texture": "#0"},
|
||||
"east": {"uv": [7, 3, 9.5, 3.5], "texture": "#0"},
|
||||
"south": {"uv": [8, 7, 9, 7.5], "texture": "#0"},
|
||||
"west": {"uv": [7, 3.5, 9.5, 4], "texture": "#0"},
|
||||
"up": {"uv": [5, 8, 4, 5.5], "texture": "#0"},
|
||||
"down": {"uv": [6, 5.5, 5, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.1, 7, 7],
|
||||
"to": [8.9, 7.5, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [3, 8.5, 4, 9], "texture": "#0"},
|
||||
"east": {"uv": [3, 8, 4.5, 8.5], "texture": "#0"},
|
||||
"south": {"uv": [4, 8.5, 5, 9], "texture": "#0"},
|
||||
"west": {"uv": [4.5, 8, 6, 8.5], "texture": "#0"},
|
||||
"up": {"uv": [8, 1.5, 7, 0], "texture": "#0"},
|
||||
"down": {"uv": [8, 1.5, 7, 3], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.1, 7, 3],
|
||||
"to": [8.9, 8, 7],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 6, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 8.5, 6, 9], "texture": "#0"},
|
||||
"east": {"uv": [8, 0, 10, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [6, 8.5, 7, 9], "texture": "#0"},
|
||||
"west": {"uv": [8, 0.5, 10, 1], "texture": "#0"},
|
||||
"up": {"uv": [7, 4, 6, 2], "texture": "#0"},
|
||||
"down": {"uv": [4, 6, 3, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.1, 5, 6.5],
|
||||
"to": [8.9, 7, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 4, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 7.5, 1.5, 8.5], "texture": "#0"},
|
||||
"east": {"uv": [3, 0, 7, 1], "texture": "#0"},
|
||||
"south": {"uv": [1.5, 7.5, 2.5, 8.5], "texture": "#0"},
|
||||
"west": {"uv": [3, 1, 7, 2], "texture": "#0"},
|
||||
"up": {"uv": [4, 6, 3, 2], "texture": "#0"},
|
||||
"down": {"uv": [1, 3.5, 0, 7.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.1, 5.75723, 12.92312],
|
||||
"to": [8.9, 7.60723, 13.69312],
|
||||
"rotation": {"angle": 22.5, "axis": "x", "origin": [7, 4.60723, 11.94312]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 1, 9, 2], "texture": "#0"},
|
||||
"east": {"uv": [2, 8.5, 2.5, 9.5], "texture": "#0"},
|
||||
"south": {"uv": [8, 2, 9, 3], "texture": "#0"},
|
||||
"west": {"uv": [7, 8.5, 7.5, 9.5], "texture": "#0"},
|
||||
"up": {"uv": [9.5, 8.5, 8.5, 8], "texture": "#0"},
|
||||
"down": {"uv": [10, 1, 9, 1.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.2, 6.5, 2],
|
||||
"to": [8.8, 7.9, 9.75],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 4, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 7.5, 9.5, 8], "texture": "#0"},
|
||||
"east": {"uv": [6, 4, 10, 4.5], "texture": "#0"},
|
||||
"south": {"uv": [8, 8.5, 9, 9], "texture": "#0"},
|
||||
"west": {"uv": [6, 4.5, 10, 5], "texture": "#0"},
|
||||
"up": {"uv": [2, 7.5, 1, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [3, 3.5, 2, 7.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.35, 5.25, 2],
|
||||
"to": [8.65, 6.5, 6.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 4, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [3.5, 9, 4, 9.5], "texture": "#0"},
|
||||
"east": {"uv": [7, 5, 9.5, 5.5], "texture": "#0"},
|
||||
"south": {"uv": [4, 9, 4.5, 9.5], "texture": "#0"},
|
||||
"west": {"uv": [7, 5.5, 9.5, 6], "texture": "#0"},
|
||||
"up": {"uv": [7.5, 8.5, 7, 6], "texture": "#0"},
|
||||
"down": {"uv": [0.5, 7.5, 0, 10], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.75, 3.25, 7],
|
||||
"to": [8.25, 5, 7.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4.125, 7.125]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 7.5, 8.5, 8.5], "texture": "#0"},
|
||||
"east": {"uv": [0.5, 8.5, 1, 9.5], "texture": "#0"},
|
||||
"south": {"uv": [1, 8.5, 1.5, 9.5], "texture": "#0"},
|
||||
"west": {"uv": [1.5, 8.5, 2, 9.5], "texture": "#0"},
|
||||
"up": {"uv": [9.5, 2, 9, 1.5], "texture": "#0"},
|
||||
"down": {"uv": [9.5, 2, 9, 2.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.75, 3.25, 7.25],
|
||||
"to": [8.25, 3.5, 10.75],
|
||||
"rotation": {"angle": 0, "axis": "x", "origin": [8, 3.375, 8.875]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 2.5, 9.5, 3], "texture": "#0"},
|
||||
"east": {"uv": [7.5, 6, 9.5, 6.5], "texture": "#0"},
|
||||
"south": {"uv": [3, 9, 3.5, 9.5], "texture": "#0"},
|
||||
"west": {"uv": [7.5, 6.5, 9.5, 7], "texture": "#0"},
|
||||
"up": {"uv": [3, 9.5, 2.5, 7.5], "texture": "#0"},
|
||||
"down": {"uv": [8, 7, 7.5, 9], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.15781, -0.26537, 10.40224],
|
||||
"to": [8.84219, 6.23463, 13.15224],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [7, 4.23463, 12.15224]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 2, 5, 5.5], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 1.5, 3.5], "texture": "#0"},
|
||||
"south": {"uv": [5, 2, 6, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [1.5, 0, 3, 3.5], "texture": "#0"},
|
||||
"up": {"uv": [7, 6.5, 6, 5], "texture": "#0"},
|
||||
"down": {"uv": [7, 6.5, 6, 8], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [-1, 1.5, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"scale": [0, 0, 0]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0, -80, 0],
|
||||
"scale": [0, 0, 0]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, -0.25, 0],
|
||||
"scale": [0.75, 0.75, 0.75]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, 10.25, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [90, 45, -90],
|
||||
"translation": [1.25, 4, 0],
|
||||
"scale": [1.2, 1.2, 1.2]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "superbwarfare:item/mp443_icon"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"loader": "forge:separate_transforms",
|
||||
"gui_light": "front",
|
||||
"base": {
|
||||
"parent": "superbwarfare:item/glock_17_base"
|
||||
},
|
||||
"perspectives": {
|
||||
"gui": {
|
||||
"parent": "superbwarfare:item/mp443_icon"
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"parent": "superbwarfare:item/mp443_3d"
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"parent": "superbwarfare:item/mp443_3d"
|
||||
},
|
||||
"ground": {
|
||||
"parent": "superbwarfare:item/mp443_3d"
|
||||
},
|
||||
"fixed": {
|
||||
"parent": "superbwarfare:item/mp443_3d"
|
||||
},
|
||||
"head": {
|
||||
"parent": "superbwarfare:item/mp443_3d"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1359,50 +1359,18 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"glock_18_fire_1p": {
|
||||
"mp_443_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_fire_1p",
|
||||
"name": "superbwarfare:mp443/mp443_fire_1p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"glock_18_fire_3p": {
|
||||
"mp_443_fire_3p": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_fire_3p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"glock_18_far": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_far",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"glock_18_veryfar": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_veryfar",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"glock_18_reload_normal": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_reload_normal",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"glock_18_reload_empty": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_reload_empty",
|
||||
"name": "superbwarfare:mp443/mp443_fire_3p",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
|
@ -1439,22 +1407,6 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"m_1911_reload_normal": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_reload_normal",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"m_1911_reload_empty": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:glock_17/glock_reload_empty",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"qbz_95_fire_1p": {
|
||||
"sounds": [
|
||||
{
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 5 KiB |
BIN
src/main/resources/assets/superbwarfare/textures/item/mp443.png
Normal file
BIN
src/main/resources/assets/superbwarfare/textures/item/mp443.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 342 B |
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 390 B |
15
src/main/resources/data/superbwarfare/guns/mp_443.json
Normal file
15
src/main/resources/data/superbwarfare/guns/mp_443.json
Normal file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"Spread": 2.5,
|
||||
"RecoilX": 0.004,
|
||||
"RecoilY": 0.013,
|
||||
"Damage": 5.5,
|
||||
"Headshot": 1.5,
|
||||
"Velocity": 17,
|
||||
"Magazine": 17,
|
||||
"Weight": 1,
|
||||
"NormalReloadTime": 44,
|
||||
"EmptyReloadTime": 47,
|
||||
"BypassesArmor": 0.15,
|
||||
"SoundRadius": 8,
|
||||
"RPM": 400
|
||||
}
|
|
@ -32,6 +32,20 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "superbwarfare:mp_443_blueprint",
|
||||
"weight": 50,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_count",
|
||||
"count": {
|
||||
"min": 1,
|
||||
"max": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "superbwarfare:m_1911_blueprint",
|
||||
|
|
|
@ -7,7 +7,21 @@
|
|||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "superbwarfare:glock_17_blueprint",
|
||||
"weight": 9,
|
||||
"weight": 10,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_count",
|
||||
"count": {
|
||||
"min": 1,
|
||||
"max": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "superbwarfare:mp_443_blueprint",
|
||||
"weight": 10,
|
||||
"functions": [
|
||||
{
|
||||
"function": "set_count",
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"type": "minecraft:smithing_transform",
|
||||
"template": {
|
||||
"item": "superbwarfare:mp_443_blueprint"
|
||||
},
|
||||
"base": {
|
||||
"item": "superbwarfare:common_material_pack"
|
||||
},
|
||||
"addition": {
|
||||
"item": "minecraft:iron_ingot"
|
||||
},
|
||||
"result": {
|
||||
"item": "superbwarfare:mp_443"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "misc",
|
||||
"pattern": [
|
||||
"aba",
|
||||
"aca",
|
||||
"aaa"
|
||||
],
|
||||
"key": {
|
||||
"a": {
|
||||
"item": "minecraft:diamond"
|
||||
},
|
||||
"b": {
|
||||
"item": "superbwarfare:mp_443_blueprint"
|
||||
},
|
||||
"c": {
|
||||
"item": "minecraft:lapis_lazuli"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "superbwarfare:mp_443_blueprint",
|
||||
"count": 2
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue