Fix for Traben-0/Entity_Model_Features#89 (because apparently we can't trust the context to give us the model we set)

This commit is contained in:
Sollace 2023-08-01 20:26:38 +01:00
parent 262a39e1d8
commit 0aee3343f8
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
3 changed files with 15 additions and 5 deletions

View file

@ -43,6 +43,11 @@ public abstract class AbstractPonyFeature<T extends LivingEntity, M extends Enti
return (C)context; return (C)context;
} }
@Override
public final M getContextModel() {
return context.getInternalRenderer().getModel();
}
protected ModelWrapper<T, M> getModelWrapper() { protected ModelWrapper<T, M> getModelWrapper() {
return context.getInternalRenderer().getModelWrapper(); return context.getInternalRenderer().getModelWrapper();
} }

View file

@ -2,6 +2,7 @@ package com.minelittlepony.client.render.entity.feature;
import com.minelittlepony.api.model.BodyPart; import com.minelittlepony.api.model.BodyPart;
import com.minelittlepony.client.model.IPonyModel; import com.minelittlepony.client.model.IPonyModel;
import com.minelittlepony.client.render.IPonyRenderContext;
import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.feature.FeatureRendererContext; import net.minecraft.client.render.entity.feature.FeatureRendererContext;
@ -17,8 +18,12 @@ import net.minecraft.util.Arm;
public class HeldItemFeature<T extends LivingEntity, M extends EntityModel<T> & IPonyModel<T> & ModelWithArms> extends HeldItemFeatureRenderer<T, M> { public class HeldItemFeature<T extends LivingEntity, M extends EntityModel<T> & IPonyModel<T> & ModelWithArms> extends HeldItemFeatureRenderer<T, M> {
public HeldItemFeature(FeatureRendererContext<T, M> context, HeldItemRenderer renderer) { private final IPonyRenderContext<T, M> context;
super(context, renderer);
@SuppressWarnings("unchecked")
public HeldItemFeature(IPonyRenderContext<T, M> context, HeldItemRenderer renderer) {
super((FeatureRendererContext<T, M>)context, renderer);
this.context = context;
} }
protected ItemStack getLeftItem(T entity) { protected ItemStack getLeftItem(T entity) {
@ -39,7 +44,7 @@ public class HeldItemFeature<T extends LivingEntity, M extends EntityModel<T> &
ItemStack right = getRightItem(entity); ItemStack right = getRightItem(entity);
if (!left.isEmpty() || !right.isEmpty()) { if (!left.isEmpty() || !right.isEmpty()) {
M model = getContextModel(); M model = context.getInternalRenderer().getModel();
stack.push(); stack.push();

View file

@ -1,16 +1,16 @@
package com.minelittlepony.client.render.entity.feature; package com.minelittlepony.client.render.entity.feature;
import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.feature.FeatureRendererContext;
import net.minecraft.client.render.item.HeldItemRenderer; import net.minecraft.client.render.item.HeldItemRenderer;
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.mob.IllagerEntity; import net.minecraft.entity.mob.IllagerEntity;
import com.minelittlepony.client.model.entity.race.AlicornModel; import com.minelittlepony.client.model.entity.race.AlicornModel;
import com.minelittlepony.client.render.IPonyRenderContext;
public class IllagerHeldItemFeature<T extends IllagerEntity, M extends AlicornModel<T>> extends HeldItemFeature<T, M> { public class IllagerHeldItemFeature<T extends IllagerEntity, M extends AlicornModel<T>> extends HeldItemFeature<T, M> {
public IllagerHeldItemFeature(FeatureRendererContext<T,M> livingPony, HeldItemRenderer renderer) { public IllagerHeldItemFeature(IPonyRenderContext<T,M> livingPony, HeldItemRenderer renderer) {
super(livingPony, renderer); super(livingPony, renderer);
} }