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

52 lines
1.7 KiB
Java
Raw Normal View History

package com.minelittlepony.render.layer;
2018-04-27 20:37:54 +02:00
import com.minelittlepony.ducks.IRenderPony;
import com.minelittlepony.model.AbstractPonyModel;
2018-04-29 11:56:26 +02:00
import com.minelittlepony.model.capabilities.IModel;
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.EntityLivingBase;
2018-04-27 17:50:13 +02:00
public abstract class AbstractPonyLayer<T extends EntityLivingBase> implements LayerRenderer<EntityLivingBase> {
2018-04-27 17:50:13 +02:00
private final RenderLivingBase<T> renderer;
public AbstractPonyLayer(RenderLivingBase<T> renderer) {
this.renderer = renderer;
}
2018-04-27 17:50:13 +02:00
@SuppressWarnings("unchecked")
@Override
2018-04-27 17:50:13 +02:00
public final void doRenderLayer(EntityLivingBase entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) {
// render the pony layer
doPonyRender((T)entity, move, swing, ticks, age, headYaw, headPitch, scale);
}
protected abstract void doPonyRender(T entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale);
2018-04-27 17:50:13 +02:00
protected RenderLivingBase<T> getRenderer() {
return renderer;
}
2018-04-27 20:37:54 +02:00
public AbstractPonyModel getPlayerModel() {
return ((IRenderPony) getRenderer()).getPlayerModel().getModel();
}
2018-04-29 11:56:26 +02:00
@SuppressWarnings("unchecked")
public <M extends IModel> M getPonyModel() {
return (M)getMainModel();
2018-04-27 20:37:54 +02:00
}
@SuppressWarnings("unchecked")
public <M extends ModelBase> M getMainModel() {
return (M)getRenderer().getMainModel();
}
@Override
public boolean shouldCombineTextures() {
return false;
}
}