MineLittlePony/src/main/java/com/minelittlepony/render/layer/LayerOverlayBase.java

40 lines
No EOL
1.3 KiB
Java

package com.minelittlepony.render.layer;
import net.minecraft.client.model.ModelBase;
import net.minecraft.client.renderer.entity.RenderLivingBase;
import net.minecraft.client.renderer.entity.layers.LayerRenderer;
import net.minecraft.entity.EntityLiving;
import net.minecraft.util.ResourceLocation;
// separate class in case I need it later
public abstract class LayerOverlayBase<T extends EntityLiving> implements LayerRenderer<T> {
protected final RenderLivingBase<?> renderer;
public LayerOverlayBase(RenderLivingBase<?> render) {
renderer = render;
}
@Override
public boolean shouldCombineTextures() {
return true;
}
@Override
public void doRenderLayer(T entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) {
ModelBase overlayModel = getOverlayModel();
overlayModel.setModelAttributes(renderer.getMainModel());
overlayModel.setLivingAnimations(entity, move, swing, ticks);
overlayModel.setRotationAngles(move, swing, age, headYaw, headPitch, scale, entity);
renderer.bindTexture(getOverlayTexture());
overlayModel.render(entity, move, swing, age, headYaw, headPitch, scale);
}
protected abstract ModelBase getOverlayModel();
protected abstract ResourceLocation getOverlayTexture();
}