Fixed shields rendering on players in the inventory screen

This commit is contained in:
Sollace 2024-02-27 21:20:50 +00:00
parent e03fb016d5
commit aa00b1a9b0
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
2 changed files with 15 additions and 1 deletions

View file

@ -79,6 +79,10 @@ public class SpellEffectsRenderDispatcher implements SynchronousResourceReloader
}
public void render(MatrixStack matrices, VertexConsumerProvider vertices, int light, Caster<?> caster, float limbAngle, float limbDistance, float tickDelta, float animationProgress, float headYaw, float headPitch) {
if (!((RenderDispatcherAccessor)client.getEntityRenderDispatcher()).shouldRenderShadows()) {
return;
}
caster.getSpellSlot().forEach(spell -> {
render(matrices, vertices, spell, caster, light, limbAngle, limbDistance, tickDelta, animationProgress, headYaw, headPitch);
return Operation.SKIP;
@ -156,4 +160,8 @@ public class SpellEffectsRenderDispatcher implements SynchronousResourceReloader
matrices.pop();
}
}
public interface RenderDispatcherAccessor {
boolean shouldRenderShadows();
}
}

View file

@ -1,11 +1,13 @@
package com.minelittlepony.unicopia.mixin.client;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.minelittlepony.unicopia.client.render.WorldRenderDelegate;
import com.minelittlepony.unicopia.client.render.spell.SpellEffectsRenderDispatcher;
import com.minelittlepony.unicopia.entity.Equine;
import net.minecraft.client.render.VertexConsumerProvider;
@ -14,7 +16,7 @@ import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
@Mixin(EntityRenderDispatcher.class)
abstract class MixinEntityRenderDispatcher {
abstract class MixinEntityRenderDispatcher implements SpellEffectsRenderDispatcher.RenderDispatcherAccessor {
private static final String RENDER = "render(Lnet/minecraft/entity/Entity;DDDFFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V";
@ -29,4 +31,8 @@ abstract class MixinEntityRenderDispatcher {
private <E extends Entity> void afterRender(E entity, double x, double y, double z, float yaw, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo info) {
Equine.of(entity).ifPresent(eq -> WorldRenderDelegate.INSTANCE.afterEntityRender(eq, matrices, vertexConsumers, light));
}
@Accessor("renderShadows")
@Override
public abstract boolean shouldRenderShadows();
}