MineLittlePony/src/main/java/com/minelittlepony/renderer/layer/AbstractPonyLayer.java
Matthew Messinger 29f2f5ee58 Fix class cast exceptions
* elytras in skins menu
* zombie villagers
2017-06-16 02:14:50 -04:00

41 lines
1.6 KiB
Java

package com.minelittlepony.renderer.layer;
import com.minelittlepony.model.pony.ModelHumanPlayer;
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;
public abstract class AbstractPonyLayer<T extends EntityLivingBase> implements LayerRenderer<T> {
private final RenderLivingBase<? extends T> renderer;
private LayerRenderer<T> layer;
public AbstractPonyLayer(RenderLivingBase<? extends T> renderer, LayerRenderer<T> humanLayer) {
this.renderer = renderer;
this.layer = humanLayer;
}
public final void doRenderLayer(T entity, float limbSwing, float limbSwingAmount, float ticks, float ageInTicks,
float netHeadYaw, float headPitch, float scale) {
ModelBase model = renderer.getMainModel();
if (model instanceof ModelHumanPlayer) {
// render the human layer
layer.doRenderLayer(entity, limbSwing, limbSwingAmount, ticks, ageInTicks, netHeadYaw, headPitch, scale);
} else {
// render the pony layer
doPonyRender(entity, limbSwing, limbSwingAmount, ticks, ageInTicks, netHeadYaw, headPitch, scale);
}
}
protected abstract void doPonyRender(T entity, float limbSwing, float limbSwingAmount, float ticks, float ageInTicks, float netHeadYaw, float headPitch, float scale);
protected RenderLivingBase<? extends T> getRenderer() {
return renderer;
}
@Override
public boolean shouldCombineTextures() {
return false;
}
}