Fix horse rendering: culling when looking up + fire debug texture (#899)

- Skip frustum culling for the entity the player is currently riding, preventing the horse from disappearing when looking up (fixes a bug reported on Discord)

- Fix HorseRenderer::bindTexture() to delegate to base class for single textures (fire atlas, enchant glint), only using bindTextureLayers() for multi-layer horse textures

Co-authored-by: MCbabel <MCbabel@users.noreply.github.com>
This commit is contained in:
Marlian
2026-03-08 05:30:44 +01:00
committed by GitHub
parent 087b7e7abf
commit cfcec48ae1
2 changed files with 11 additions and 3 deletions

View File

@@ -55,8 +55,15 @@ void HorseRenderer::renderModel(shared_ptr<LivingEntity> mob, float wp, float ws
void HorseRenderer::bindTexture(ResourceLocation *location)
{
// Set up (potentially) multiple texture layers for the horse
entityRenderDispatcher->textures->bindTextureLayers(location);
if (location->getTextureCount() > 1)
{
// Set up multiple texture layers for the horse
entityRenderDispatcher->textures->bindTextureLayers(location);
}
else
{
EntityRenderer::bindTexture(location);
}
}
ResourceLocation *HorseRenderer::getTextureLocation(shared_ptr<Entity> entity)

View File

@@ -545,7 +545,8 @@ void LevelRenderer::renderEntities(Vec3 *cam, Culler *culler, float a)
for (auto& entity : entities)
{
bool shouldRender = (entity->shouldRender(cam) && (entity->noCulling || culler->isVisible(entity->bb)));
bool isPlayerVehicle = (entity == mc->cameraTargetPlayer->riding);
bool shouldRender = (entity->shouldRender(cam) && (entity->noCulling || isPlayerVehicle || culler->isVisible(entity->bb)));
// Render the mob if the mob's leash holder is within the culler
if ( !shouldRender && entity->instanceof(eTYPE_MOB) )