Revert "优化配件渲染"

This reverts commit 35ae784ade.
This commit is contained in:
Light_Quanta 2025-06-03 03:26:07 +08:00
parent e76808d1cb
commit b168e9eac0
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
2 changed files with 13 additions and 41 deletions

View file

@ -1,12 +1,10 @@
package com.atsuishio.superbwarfare.client.renderer; package com.atsuishio.superbwarfare.client.renderer;
import com.atsuishio.superbwarfare.client.ItemModelHelper;
import com.atsuishio.superbwarfare.client.model.item.CustomGunModel; import com.atsuishio.superbwarfare.client.model.item.CustomGunModel;
import com.atsuishio.superbwarfare.config.client.DisplayConfig; import com.atsuishio.superbwarfare.config.client.DisplayConfig;
import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.item.gun.GunItem;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;
@ -16,7 +14,6 @@ import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.joml.Matrix4f; import org.joml.Matrix4f;
import software.bernie.geckolib.animatable.GeoAnimatable; import software.bernie.geckolib.animatable.GeoAnimatable;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.cache.object.BakedGeoModel; import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.cache.object.GeoBone;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
@ -24,8 +21,6 @@ import software.bernie.geckolib.renderer.GeoItemRenderer;
import software.bernie.geckolib.util.Color; import software.bernie.geckolib.util.Color;
import software.bernie.geckolib.util.RenderUtil; import software.bernie.geckolib.util.RenderUtil;
import java.util.Set;
public class CustomGunRenderer<T extends GunItem & GeoAnimatable> extends GeoItemRenderer<T> { public class CustomGunRenderer<T extends GunItem & GeoAnimatable> extends GeoItemRenderer<T> {
public static final float SCALE_RECIPROCAL = 1.0f / 16.0f; public static final float SCALE_RECIPROCAL = 1.0f / 16.0f;
@ -40,36 +35,10 @@ public class CustomGunRenderer<T extends GunItem & GeoAnimatable> extends GeoIte
super(model); super(model);
} }
/**
* 在其他视角下会隐藏的骨骼名称例如配件的骨骼名
*/
public Set<String> getHiddenBonesInOtherPerspective() {
return Set.of();
}
@Override @Override
public void renderRecursively(PoseStack poseStack, T animatable, GeoBone bone, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, int color) { public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) {
Minecraft mc = Minecraft.getInstance(); this.transformType = transformType;
String name = bone.getName(); super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_);
var player = mc.player;
if (player == null) return;
ItemStack itemStack = player.getMainHandItem();
if (itemStack.getItem() instanceof GunItem && GeoItem.getId(itemStack) == this.getInstanceId(animatable)) {
if (this.renderPerspective == ItemDisplayContext.FIXED) {
ItemModelHelper.hideAllAttachments(bone, name);
if (this.getHiddenBonesInOtherPerspective().contains(name)) {
bone.setHidden(true);
}
}
} else {
ItemModelHelper.hideAllAttachments(bone, name);
if (this.getHiddenBonesInOtherPerspective().contains(name)) {
bone.setHidden(true);
}
}
super.renderRecursively(poseStack, animatable, bone, renderType, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, color);
} }
@Override @Override

View file

@ -19,8 +19,6 @@ import net.minecraft.world.item.ItemStack;
import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.cache.object.GeoBone;
import java.util.Set;
public class Mp5ItemRenderer extends CustomGunRenderer<Mp5Item> { public class Mp5ItemRenderer extends CustomGunRenderer<Mp5Item> {
public Mp5ItemRenderer() { public Mp5ItemRenderer() {
@ -56,6 +54,11 @@ public class Mp5ItemRenderer extends CustomGunRenderer<Mp5Item> {
} }
AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0.05, 1, 0.35); AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0.05, 1, 0.35);
ItemModelHelper.handleGunAttachments(bone, itemStack, name); ItemModelHelper.handleGunAttachments(bone, itemStack, name);
} else if (this.renderPerspective == ItemDisplayContext.FIXED) {
ItemModelHelper.hideAllAttachments(bone, name);
if (name.equals("yugu")) {
bone.setHidden(true);
}
} }
int scopeType = GunData.from(itemStack).attachment.get(AttachmentType.SCOPE); int scopeType = GunData.from(itemStack).attachment.get(AttachmentType.SCOPE);
@ -65,6 +68,11 @@ public class Mp5ItemRenderer extends CustomGunRenderer<Mp5Item> {
case 2 -> case 2 ->
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, 0, 0.52, 14, 1.4f, 255, 0, 0, 255, "acog", true); AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, 0, 0.52, 14, 1.4f, 255, 0, 0, 255, "acog", true);
} }
} else {
ItemModelHelper.hideAllAttachments(bone, name);
if (name.equals("yugu")) {
bone.setHidden(true);
}
} }
if (renderingArms) { if (renderingArms) {
@ -73,9 +81,4 @@ public class Mp5ItemRenderer extends CustomGunRenderer<Mp5Item> {
super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, color); super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, color);
} }
@Override
public Set<String> getHiddenBonesInOtherPerspective() {
return Set.of("yugu");
}
} }