修复M870和M1895不播放动画的bug

This commit is contained in:
Atsuihsio 2024-05-12 14:29:50 +08:00
parent bd647f2a4e
commit 9afbc97ab5
2 changed files with 88 additions and 0 deletions

View file

@ -1,17 +1,61 @@
package net.mcreator.target.client.renderer.item; package net.mcreator.target.client.renderer.item;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.item.gun.M870Item; import net.mcreator.target.item.gun.M870Item;
import net.mcreator.target.client.layer.M870Layer; import net.mcreator.target.client.layer.M870Layer;
import net.mcreator.target.client.model.item.M870ItemModel; import net.mcreator.target.client.model.item.M870ItemModel;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoItemRenderer; import software.bernie.geckolib.renderer.GeoItemRenderer;
import java.util.HashSet;
import java.util.Set;
public class M870ItemRenderer extends GeoItemRenderer<M870Item> { public class M870ItemRenderer extends GeoItemRenderer<M870Item> {
public M870ItemRenderer() { public M870ItemRenderer() {
super(new M870ItemModel()); super(new M870ItemModel());
this.addRenderLayer(new M870Layer(this)); this.addRenderLayer(new M870Layer(this));
} }
@Override
public RenderType getRenderType(M870Item 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 M870Item animatable;
private final Set<String> hiddenBones = new HashSet<>();
private final Set<String> suppressedBones = 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, M870Item 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 @Override
public ResourceLocation getTextureLocation(M870Item instance) { public ResourceLocation getTextureLocation(M870Item instance) {
return super.getTextureLocation(instance); return super.getTextureLocation(instance);

View file

@ -1,17 +1,61 @@
package net.mcreator.target.client.renderer.item; package net.mcreator.target.client.renderer.item;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.item.gun.MarlinItem; import net.mcreator.target.item.gun.MarlinItem;
import net.mcreator.target.client.layer.MarlinLayer; import net.mcreator.target.client.layer.MarlinLayer;
import net.mcreator.target.client.model.item.MarlinItemModel; import net.mcreator.target.client.model.item.MarlinItemModel;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoItemRenderer; import software.bernie.geckolib.renderer.GeoItemRenderer;
import java.util.HashSet;
import java.util.Set;
public class MarlinItemRenderer extends GeoItemRenderer<MarlinItem> { public class MarlinItemRenderer extends GeoItemRenderer<MarlinItem> {
public MarlinItemRenderer() { public MarlinItemRenderer() {
super(new MarlinItemModel()); super(new MarlinItemModel());
this.addRenderLayer(new MarlinLayer(this)); this.addRenderLayer(new MarlinLayer(this));
} }
@Override
public RenderType getRenderType(MarlinItem 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 MarlinItem animatable;
private final Set<String> hiddenBones = new HashSet<>();
private final Set<String> suppressedBones = 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, MarlinItem 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 @Override
public ResourceLocation getTextureLocation(MarlinItem instance) { public ResourceLocation getTextureLocation(MarlinItem instance) {
return super.getTextureLocation(instance); return super.getTextureLocation(instance);