2018-04-25 16:40:47 +02:00
|
|
|
package com.minelittlepony.render.layer;
|
2016-07-07 08:57:52 +02:00
|
|
|
|
|
|
|
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) {
|
2018-04-27 13:49:33 +02:00
|
|
|
renderer = render;
|
2016-07-07 08:57:52 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean shouldCombineTextures() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2018-04-29 18:07:44 +02:00
|
|
|
@Override
|
|
|
|
public void doRenderLayer(T entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) {
|
2018-04-27 13:49:33 +02:00
|
|
|
ModelBase overlayModel = getOverlayModel();
|
|
|
|
|
|
|
|
overlayModel.setModelAttributes(renderer.getMainModel());
|
|
|
|
overlayModel.setLivingAnimations(entity, move, swing, ticks);
|
2018-04-29 18:07:44 +02:00
|
|
|
overlayModel.setRotationAngles(move, swing, age, headYaw, headPitch, scale, entity);
|
2018-04-27 13:49:33 +02:00
|
|
|
|
|
|
|
renderer.bindTexture(getOverlayTexture());
|
|
|
|
|
|
|
|
overlayModel.render(entity, move, swing, age, headYaw, headPitch, scale);
|
2016-07-07 08:57:52 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
protected abstract ModelBase getOverlayModel();
|
|
|
|
|
|
|
|
protected abstract ResourceLocation getOverlayTexture();
|
|
|
|
|
|
|
|
}
|