完成剩余准星优化

This commit is contained in:
Atsuishio 2025-04-26 15:25:15 +08:00 committed by Light_Quanta
parent 310d243dec
commit c0dd35cf18
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
27 changed files with 85 additions and 860 deletions

View file

@ -1,27 +0,0 @@
package com.atsuishio.superbwarfare.client.layer.gun;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.item.gun.sniper.SentinelItem;
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 SentinelLayer extends GeoRenderLayer<SentinelItem> {
private static final ResourceLocation LAYER = Mod.loc("textures/item/sentinel_e.png");
public SentinelLayer(GeoRenderer<SentinelItem> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, SentinelItem 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, 0xFFFFFFFF);
}
}

View file

@ -1,27 +0,0 @@
package com.atsuishio.superbwarfare.client.layer.gun;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.item.gun.rifle.SksItem;
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 SksLayer extends GeoRenderLayer<SksItem> {
private static final ResourceLocation LAYER = Mod.loc("textures/item/sks_e.png");
public SksLayer(GeoRenderer<SksItem> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, SksItem 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, 0xFFFFFFFF);
}
}

View file

@ -1,27 +0,0 @@
package com.atsuishio.superbwarfare.client.layer.gun;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.item.gun.sniper.SvdItem;
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 SvdLayer extends GeoRenderLayer<SvdItem> {
private static final ResourceLocation LAYER = Mod.loc("textures/item/ak12_e.png");
public SvdLayer(GeoRenderer<SvdItem> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, SvdItem 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, 0xFFFFFFFF);
}
}

View file

@ -1,27 +0,0 @@
package com.atsuishio.superbwarfare.client.layer.gun;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.item.gun.handgun.Trachelium;
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 TracheliumLayer extends GeoRenderLayer<Trachelium> {
private static final ResourceLocation LAYER = Mod.loc("textures/item/trachelium_texture_e.png");
public TracheliumLayer(GeoRenderer<Trachelium> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, Trachelium 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, 0xFFFFFFFF);
}
}

View file

@ -1,28 +0,0 @@
package com.atsuishio.superbwarfare.client.layer.gun;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.client.ModRenderTypes;
import com.atsuishio.superbwarfare.item.gun.handgun.Trachelium;
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 TracheliumLightLayer extends GeoRenderLayer<Trachelium> {
private static final ResourceLocation LAYER = Mod.loc("textures/item/trachelium_texture_e.png");
public TracheliumLightLayer(GeoRenderer<Trachelium> itemGeoRenderer) {
super(itemGeoRenderer);
}
@Override
public void render(PoseStack poseStack, Trachelium 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, 0xFFFFFFFF);
}
}

View file

@ -1,27 +0,0 @@
package com.atsuishio.superbwarfare.client.layer.gun;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.item.gun.smg.VectorItem;
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 VectorLayer extends GeoRenderLayer<VectorItem> {
private static final ResourceLocation LAYER = Mod.loc("textures/item/vector_e.png");
public VectorLayer(GeoRenderer<VectorItem> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, VectorItem 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, 0xFFFFFFFF);
}
}

View file

@ -40,7 +40,6 @@ public class MosinNagantItemModel extends GeoModel<MosinNagantItem> {
GeoBone bone15 = getAnimationProcessor().getBone("bone15");
GeoBone bone16 = getAnimationProcessor().getBone("bone16");
GeoBone qiangshen = getAnimationProcessor().getBone("qiangshen");
GeoBone rex = getAnimationProcessor().getBone("rex");
Player player = Minecraft.getInstance().player;
if (player == null) return;
@ -93,11 +92,6 @@ public class MosinNagantItemModel extends GeoModel<MosinNagantItem> {
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
CrossHairOverlay.gunRot = shen.getRotZ();
rex.setPosY(0.05f + 0.1f * (float) fp);
rex.setRotZ((float) (-0.08f * fp * ClientEventHandler.recoilHorizon * fp));
ClientEventHandler.gunRootMove(getAnimationProcessor());
GeoBone camera = getAnimationProcessor().getBone("camera");

View file

@ -44,7 +44,6 @@ public class SvdItemModel extends GeoModel<SvdItem> {
public void setCustomAnimations(SvdItem animatable, long instanceId, AnimationState animationState) {
GeoBone gun = getAnimationProcessor().getBone("bone");
GeoBone bolt = getAnimationProcessor().getBone("bolt");
GeoBone cross3 = getAnimationProcessor().getBone("Cross3");
Player player = Minecraft.getInstance().player;
if (player == null) return;
@ -98,8 +97,6 @@ public class SvdItemModel extends GeoModel<SvdItem> {
gun.setPosZ(posZ * (float) zp + (float) (0.3f * zpz));
gun.setRotZ((float) (0.05f * zpz));
gun.setScaleZ(1f - (scaleZ * (float) zp));
cross3.setScaleX((float) (1f + (0.1 * zp)));
cross3.setScaleY((float) (1f + (0.1 * zp)));
var data = GunData.from(stack);

View file

@ -45,7 +45,6 @@ public class VectorItemModel extends GeoModel<VectorItem> {
public void setCustomAnimations(VectorItem animatable, long instanceId, AnimationState animationState) {
GeoBone gun = getAnimationProcessor().getBone("bone");
GeoBone scope = getAnimationProcessor().getBone("Scope1");
GeoBone cross1 = getAnimationProcessor().getBone("Cross1");
GeoBone kmj = getAnimationProcessor().getBone("kuaimanji");
GeoBone sight1fold = getAnimationProcessor().getBone("SightFold1");
GeoBone sight2fold = getAnimationProcessor().getBone("SightFold2");
@ -121,8 +120,6 @@ public class VectorItemModel extends GeoModel<VectorItem> {
CrossHairOverlay.gunRot = shen.getRotZ();
cross1.setPosY(-0.25f * (float) fpz);
rotXSight = Mth.lerp(1.5f * times, rotXSight, type == 0 ? 0 : 90);
sight1fold.setRotX(rotXSight * Mth.DEG_TO_RAD);
sight2fold.setRotX(rotXSight * Mth.DEG_TO_RAD);

View file

@ -76,14 +76,13 @@ public class MosinNagantItemRenderer extends GeoItemRenderer<MosinNagantItem> {
ItemStack itemStack = player.getMainHandItem();
if (!(itemStack.getItem() instanceof GunItem)) return;
if (name.equals("rex")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || !ClientEventHandler.zoom);
}
if (name.equals("jia") || name.equals("b1") || name.equals("b2")) {
bone.setHidden(ClientEventHandler.zoomPos > 0.7);
}
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.259025, -0.05, 0.08f, 0, 0, 0, 255, "pu", true);
AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 2.38345, 0.6);
if (renderingArms) {

View file

@ -25,9 +25,7 @@ public class SentinelItemRenderer extends GeoItemRenderer<SentinelItem> {
public SentinelItemRenderer() {
super(new SentinelItemModel());
// TODO layer
// this.addRenderLayer(new SentinelLayer(this));
// TODO layer
// this.addRenderLayer(new SentinelLightLayer(this));
// this.addRenderLayer(new SentinelLightLayer(this));
}
@Override

View file

@ -2,7 +2,6 @@ package com.atsuishio.superbwarfare.client.renderer.item;
import com.atsuishio.superbwarfare.client.AnimationHelper;
import com.atsuishio.superbwarfare.client.model.item.SksItemModel;
import com.atsuishio.superbwarfare.event.ClientEventHandler;
import com.atsuishio.superbwarfare.item.gun.GunItem;
import com.atsuishio.superbwarfare.item.gun.rifle.SksItem;
import com.mojang.blaze3d.vertex.PoseStack;
@ -24,8 +23,6 @@ public class SksItemRenderer extends GeoItemRenderer<SksItem> {
public SksItemRenderer() {
super(new SksItemModel());
// TODO layer
// this.addRenderLayer(new SksLayer(this));
}
@Override
@ -78,9 +75,7 @@ public class SksItemRenderer extends GeoItemRenderer<SksItem> {
ItemStack itemStack = player.getMainHandItem();
if (!(itemStack.getItem() instanceof GunItem)) return;
if (name.equals("holo")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || !ClientEventHandler.zoom);
}
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.25654375, 20, 2f, 0, 255, 0, 255, "okp_7", false);
AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.4375, 0.35);

View file

@ -27,8 +27,6 @@ public class SvdItemRenderer extends GeoItemRenderer<SvdItem> {
public SvdItemRenderer() {
super(new SvdItemModel());
// TODO layer
// this.addRenderLayer(new SvdLayer(this));
}
@Override
@ -86,34 +84,24 @@ public class SvdItemRenderer extends GeoItemRenderer<SvdItem> {
bone.setHidden(GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 0 || GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 2);
}
if (name.equals("Cross1")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || data.attachment.get(AttachmentType.SCOPE) != 1);
}
if (name.equals("Cross2")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || data.attachment.get(AttachmentType.SCOPE) != 2);
}
if ((GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 2 || GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 3)
&& (name.equals("Hidden2") || name.equals("Hidden") || name.equals("gun") || name.equals("bolt") || name.equals("Lefthand") || name.equals("Barrel") || name.equals("bipod") || name.equals("mount")) && ClientEventHandler.zoom && ClientEventHandler.zoomPos > 0.7) {
bone.setHidden(true);
renderingArms = false;
}
if (name.equals("flare")) {
if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 3) {
bone.setHidden(true);
} else {
if (GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 2 && ClientEventHandler.zoom && ClientEventHandler.zoomPos > 0.7) {
bone.setPosY(-2f);
}
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)));
}
int scopeType = GunData.from(itemStack).attachment.get(AttachmentType.SCOPE);
switch (scopeType) {
case 1 ->
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.24, 20, 1, 255, 0, 0, 255, "dot", false);
case 2 ->
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, -0.01, 0.24, 18, 1, 255, 0, 0, 255, "pso_1", true);
case 3 ->
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.2525, -0.1, 0.08f, 255, 0, 0, 255, "sniper", true);
}
AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.76479375, 0.35);
ItemModelHelper.handleGunAttachments(bone, itemStack, name);

View file

@ -28,10 +28,6 @@ public class TracheliumItemRenderer extends GeoItemRenderer<Trachelium> {
public TracheliumItemRenderer() {
super(new TracheliumItemModel());
// TODO layer
// this.addRenderLayer(new TracheliumLayer(this));
// TODO layer
// this.addRenderLayer(new TracheliumLightLayer(this));
}
@Override
@ -101,27 +97,25 @@ public class TracheliumItemRenderer extends GeoItemRenderer<Trachelium> {
bone.setHidden(GunData.from(itemStack).attachment.get(AttachmentType.GRIP) == 0);
}
if (name.equals("Cross1")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || data.attachment.get(AttachmentType.SCOPE) != 1);
}
if (name.equals("Cross2")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7
|| GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) != 2
|| NBTTool.getTag(itemStack).getBoolean("ScopeAlt"));
}
if (name.equals("CrossAlt")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7
|| !ClientEventHandler.zoom
|| GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) != 2
|| !(NBTTool.getTag(itemStack).getBoolean("ScopeAlt")));
}
if (GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) == 2 && !NBTTool.getTag(itemStack).getBoolean("ScopeAlt") && (name.equals("hidden"))) {
bone.setHidden(ClientEventHandler.zoomPos > 0.7 && ClientEventHandler.zoom);
}
int scopeType = GunData.from(itemStack).attachment.get(AttachmentType.SCOPE);
switch (scopeType) {
case 1 ->
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.3, 30, 1.2f, 255, 0, 0, 255, "dot", false);
case 2 -> {
if (NBTTool.getTag(itemStack).getBoolean("ScopeAlt")) {
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.36, 30, 0.18f, 255, 0, 0, 255, "delta", false);
} else {
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.294, 13, 0.87f, 255, 0, 0, 255, "hamr", true);
}
}
}
ItemModelHelper.handleGunAttachments(bone, itemStack, name);
AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.734375, 0.5);

View file

@ -3,7 +3,6 @@ package com.atsuishio.superbwarfare.client.renderer.item;
import com.atsuishio.superbwarfare.client.AnimationHelper;
import com.atsuishio.superbwarfare.client.ItemModelHelper;
import com.atsuishio.superbwarfare.client.model.item.VectorItemModel;
import com.atsuishio.superbwarfare.event.ClientEventHandler;
import com.atsuishio.superbwarfare.item.gun.GunItem;
import com.atsuishio.superbwarfare.item.gun.data.GunData;
import com.atsuishio.superbwarfare.item.gun.data.value.AttachmentType;
@ -25,33 +24,28 @@ import java.util.Set;
public class VectorItemRenderer extends GeoItemRenderer<VectorItem> {
private static final float SCALE_RECIPROCAL = 0.0625f;
protected boolean renderArms;
protected MultiBufferSource currentBuffer;
protected RenderType renderType;
public ItemDisplayContext transformType;
protected VectorItem animatable;
private final Set<String> hiddenBones;
public VectorItemRenderer() {
super(new VectorItemModel());
// TODO layer
// this.addRenderLayer(new VectorLayer(this));
this.renderArms = false;
this.hiddenBones = new HashSet<>();
}
@Override
public RenderType getRenderType(VectorItem 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 VectorItem 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_);
}
@ -84,20 +78,18 @@ public class VectorItemRenderer extends GeoItemRenderer<VectorItem> {
ItemStack itemStack = player.getMainHandItem();
if (!(itemStack.getItem() instanceof GunItem)) return;
var data = GunData.from(itemStack);
if (name.equals("Cross1")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || data.attachment.get(AttachmentType.SCOPE) != 1);
}
if (name.equals("Cross2")) {
bone.setHidden(ClientEventHandler.zoomPos < 0.7 || data.attachment.get(AttachmentType.SCOPE) != 2);
}
if (name.equals("tuoxin")) {
bone.setHidden(GunData.from(itemStack).attachment.get(AttachmentType.STOCK) == 0);
}
int scopeType = GunData.from(itemStack).attachment.get(AttachmentType.SCOPE);
switch (scopeType) {
case 1 ->
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.27, 18, 1, 255, 0, 0, 255, "dot", false);
case 2 ->
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, packedLightIn, 0, 0.27, 16, 1, 255, 0, 0, 255, "apex_2x", true);
}
AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 1.453125, 0.35);
ItemModelHelper.handleGunAttachments(bone, itemStack, name);
@ -108,88 +100,4 @@ public class VectorItemRenderer extends GeoItemRenderer<VectorItem> {
}
super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, color);
}
// @Override
// public void renderRecursively(PoseStack stack, VectorItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, int color) {
// 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.getItem() instanceof GunItem)) return;
//
// if (name.equals("Cross1")) {
// bone.setHidden(ClientEventHandler.zoomPos < 0.7
// || !ClientEventHandler.zoom
// || GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) != 1);
// }
//
// if (name.equals("Cross2")) {
// bone.setHidden(ClientEventHandler.zoomPos < 0.7
// || !ClientEventHandler.zoom
// || GunData.from(itemStack).attachment.get(AttachmentType.SCOPE) != 2);
// }
//
// if (name.equals("tuoxin")) {
// bone.setHidden(GunData.from(itemStack).attachment.get(AttachmentType.STOCK) == 0);
// }
//
// if (name.equals("flare")) {
// if (ClientEventHandler.firePosTimer == 0 || Clientdom() - 0.5)));
//// bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5)));
//// bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
//// }
//// }
////
//// ItemModelHelper.handleGunAttachments(bone, itemStack, name);EventHandler.firePosTimer > 0.5 || GunData.from(itemStack).attachment.get(AttachmentType.BARREL) == 2) {
// bone.setHidden(true);
// } else {
// bone.setHidden(false);
// bone.setScaleX((float) (0.55 + 0.5 * (Math.ran
//
//// type.
// 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();
//
// RenderUtil.translateMatrixToBone(stack, bone);
// RenderUtil.translateToPivotPoint(stack, bone);
// RenderUtil.rotateMatrixAroundBone(stack, bone);
// RenderUtil.scaleMatrixForBone(stack, bone);
// RenderUtil.translateAwayFromPivotPoint(stack, bone);
// ResourceLocation loc = localPlayer.getSkin().texture();
// 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, color);
// }
}

View file

@ -55,6 +55,15 @@
"pivot": [0, 0, 0]
},
{
"name": "cross",
"parent": "mosinnagant",
"pivot": [
0,
4.146,
-99.61558
]
},
{
"name": "flare",
"parent": "mosinnagant",
"pivot": [0, 2.41125, -38.13516]
@ -261,69 +270,6 @@
}
]
},
{
"name": "rex",
"parent": "pu",
"pivot": [0, 4.146, -99.61558],
"cubes": [
{
"origin": [-0.02874, 1.88932, -99.61558],
"size": [0.0575, 3.2, 0],
"pivot": [0.00001, 3.00494, -99.61558],
"rotation": [0, 0, -180],
"uv": {
"north": {"uv": [40, 23], "uv_size": [0.25, 0.25]},
"east": {"uv": [40, 23], "uv_size": [0.25, 0.25]},
"south": {"uv": [40, 23], "uv_size": [0.25, 0.25]},
"west": {"uv": [40, 23], "uv_size": [0.25, 0.25]},
"up": {"uv": [40.25, 23.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [40.25, 23.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.02874, 4.73061, -99.61558],
"size": [0.0575, 2.65625, 0],
"pivot": [0.00001, 4.1459, -95.86766],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"east": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"south": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"west": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"up": {"uv": [15, 41], "uv_size": [0.25, 0.25]},
"down": {"uv": [15, 41], "uv_size": [0.25, 0.25]}
}
},
{
"origin": [-0.02874, 4.73061, -99.61558],
"size": [0.0575, 2.65625, 0],
"pivot": [0.00001, 4.1459, -95.86766],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [15, 41.25], "uv_size": [0.25, -0.25]},
"east": {"uv": [15, 41.25], "uv_size": [0.25, -0.25]},
"south": {"uv": [15, 41.25], "uv_size": [0.25, -0.25]},
"west": {"uv": [15, 41.25], "uv_size": [0.25, -0.25]},
"up": {"uv": [15.25, 41], "uv_size": [-0.25, 0.25]},
"down": {"uv": [15.25, 41], "uv_size": [-0.25, 0.25]}
}
},
{
"origin": [0.01923, 4.00452, -99.61558],
"size": [0.04073, 0.04073, 0],
"pivot": [-0.00004, 4.06452, -99.61558],
"rotation": [0, 0, -135],
"uv": {
"north": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"east": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"south": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"west": {"uv": [15.25, 41.25], "uv_size": [-0.25, -0.25]},
"up": {"uv": [15, 41], "uv_size": [0.25, 0.25]},
"down": {"uv": [15, 41], "uv_size": [0.25, 0.25]}
}
}
]
},
{
"name": "jia",
"parent": "scope",

View file

@ -40,23 +40,13 @@
"pivot": [0, 2.14727, -23]
},
{
"name": "holo",
"name": "cross",
"parent": "0",
"pivot": [0.16407, 4.10469, -101],
"cubes": [
{
"origin": [-2.83593, 1.10469, -101],
"size": [6, 6, 0],
"uv": {
"north": {"uv": [126.8877, 64.44092], "uv_size": [0, -0.25]},
"east": {"uv": [0, 0], "uv_size": [0, 8]},
"south": {"uv": [5.7002, 167.15967], "uv_size": [40, 40]},
"west": {"uv": [0, 0], "uv_size": [0, 8]},
"up": {"uv": [8, 0], "uv_size": [-8, 0]},
"down": {"uv": [8, 0], "uv_size": [-8, 0]}
}
}
]
"pivot": [
0.16407,
4.10469,
-101
]
},
{
"name": "bolt",

View file

@ -55,6 +55,15 @@
"pivot": [0, 0, 0]
},
{
"name": "cross",
"parent": "0",
"pivot": [
0,
3.92156,
-298.5
]
},
{
"name": "Barrel",
"parent": "0",
"pivot": [0, 0, 0]
@ -5363,353 +5372,6 @@
"parent": "Scope3",
"pivot": [0, 4.04047, 1.64859]
},
{
"name": "Cross33",
"parent": "Cross3",
"pivot": [0, 0, 0]
},
{
"name": "bone98",
"parent": "Cross33",
"pivot": [0, 4.04047, 1.64859],
"cubes": [
{
"origin": [-0.00321, 4.02153, 1.64859],
"size": [0.00641, 0.03787, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"south": {"uv": [28.6375, 76.64375], "uv_size": [-2.25, 2.125]}
}
},
{
"origin": [-0.00321, 4.02153, 1.64859],
"size": [0.00641, 0.03787, 0],
"uv": {
"south": {"uv": [28.6375, 76.64375], "uv_size": [-2.25, 2.125]}
}
}
]
},
{
"name": "bone120",
"parent": "Cross33",
"pivot": [0, 4.04047, 1.64859]
},
{
"name": "bone100",
"parent": "bone120",
"pivot": [0, 4.04047, 1.64859],
"cubes": [
{
"origin": [-0.00354, 3.96453, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.76503, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.83153, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.89803, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.96453, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.76503, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.83153, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.89803, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
}
]
},
{
"name": "bone101",
"parent": "bone120",
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"cubes": [
{
"origin": [-0.00354, 3.96453, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.76503, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.83153, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.89803, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"north": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"east": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"west": {"uv": [0, 111], "uv_size": [0.25, 0.25]},
"up": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]},
"down": {"uv": [0.25, 111.25], "uv_size": [-0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.96453, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.76503, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.83153, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
},
{
"origin": [-0.00354, 3.89803, 1.64859],
"size": [0.00709, 0.00509, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"north": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"east": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"west": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]},
"up": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]},
"down": {"uv": [0, 111.25], "uv_size": [0.25, -0.25]}
}
}
]
},
{
"name": "bone102",
"parent": "bone120",
"pivot": [0, 4.04047, 1.64859],
"cubes": [
{
"origin": [-0.00243, 3.38775, 1.64859],
"size": [0.00485, 0.6338, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]}
}
},
{
"origin": [-0.33493, 3.72025, 1.64859],
"size": [0.00485, 0.6338, 0],
"pivot": [-0.3325, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]}
}
},
{
"origin": [-0.00243, 3.38775, 1.64859],
"size": [0.00485, 0.6338, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -180],
"uv": {
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]}
}
},
{
"origin": [-0.00243, 3.38775, 1.64859],
"size": [0.00485, 0.6338, 0],
"uv": {
"south": {"uv": [0.25, 111], "uv_size": [-0.25, 0.25]}
}
},
{
"origin": [-0.00458, 3.38775, 1.64859],
"size": [0.00917, 0.266, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -90],
"uv": {
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]}
}
},
{
"origin": [-0.00458, 3.38775, 1.64859],
"size": [0.00917, 0.266, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, 90],
"uv": {
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]}
}
},
{
"origin": [-0.00458, 3.38775, 1.64859],
"size": [0.00891, 0.266, 0],
"uv": {
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]}
}
},
{
"origin": [-0.00458, 3.38775, 1.64859],
"size": [0.00891, 0.266, 0],
"pivot": [0, 4.04047, 1.64859],
"rotation": [0, 0, -180],
"uv": {
"south": {"uv": [0, 111], "uv_size": [0.25, 0.25]}
}
}
]
},
{
"name": "jingkuang",
"parent": "Cross3",
@ -6301,34 +5963,6 @@
}
]
},
{
"name": "Cross1",
"parent": "0",
"pivot": [0, 3.92156, -298.5],
"cubes": [
{
"origin": [-0.702, 3.21956, -298.5],
"size": [1.404, 1.404, 0],
"uv": {
"south": {"uv": [23.875, 74], "uv_size": [8.25, 8.25]}
}
}
]
},
{
"name": "Cross2",
"parent": "0",
"pivot": [2.38116, -2.75475, -536.66641],
"cubes": [
{
"origin": [-8.16884, -10.00475, -536.66641],
"size": [21.1, 14.5, 0],
"uv": {
"south": {"uv": [75, 91.75], "uv_size": [52.75, 36.25]}
}
}
]
},
{
"name": "bipod",
"parent": "0",

View file

@ -203,46 +203,13 @@
"pivot": [0, 0, -2.91406]
},
{
"name": "Cross1",
"name": "cross",
"parent": "qian",
"pivot": [0, 4.11407, -145],
"cubes": [
{
"origin": [-0.20958, 3.97089, -145],
"size": [0.41917, 0.41917, 0],
"uv": {
"south": {"uv": [67.0127, 38.97217], "uv_size": [16.5, 16.5]}
}
}
]
},
{
"name": "Cross2",
"parent": "qian",
"pivot": [0, 3.69453, -52],
"cubes": [
{
"origin": [-1.49614, 2.3625, -52],
"size": [2.99228, 2.66406, 0],
"uv": {
"south": {"uv": [80.2627, 99.47217], "uv_size": [175.5, 156.25]}
}
}
]
},
{
"name": "CrossAlt",
"parent": "qian",
"pivot": [0, 5.99766, -116],
"cubes": [
{
"origin": [-0.36509, 5.63257, -116],
"size": [0.73019, 0.73019, 0],
"uv": {
"south": {"uv": [100.0127, 61.72217], "uv_size": [16.25, 16.25]}
}
}
]
"pivot": [
0,
4.11407,
-145
]
},
{
"name": "Scope1",

View file

@ -55,6 +55,15 @@
"pivot": [0, 0, 0]
},
{
"name": "cross",
"parent": "0",
"pivot": [
0,
4.62188,
-96
]
},
{
"name": "Scope1",
"parent": "0",
"pivot": [-0.00101, 3.72249, 1.17833],
@ -4014,34 +4023,6 @@
}
]
},
{
"name": "Cross1",
"parent": "0",
"pivot": [0, 4.62188, -96],
"cubes": [
{
"origin": [-0.20958, 4.41229, -96],
"size": [0.41917, 0.41917, 0],
"uv": {
"south": {"uv": [83.5127, 63.47217], "uv_size": [16.25, 16.25]}
}
}
]
},
{
"name": "Cross2",
"parent": "0",
"pivot": [-0.03125, 3.05243, -96],
"cubes": [
{
"origin": [-1.01729, 1.49236, -96],
"size": [1.97208, 3.85452, 0],
"uv": {
"south": {"uv": [103.75625, 60.20625], "uv_size": [11, 21.5]}
}
}
]
},
{
"name": "Grip1",
"parent": "0",

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB