2018-04-25 16:40:47 +02:00
|
|
|
package com.minelittlepony.render.layer;
|
|
|
|
|
|
|
|
import com.minelittlepony.model.ponies.ModelHumanPlayer;
|
2017-06-13 05:55:50 +02:00
|
|
|
|
2017-06-16 07:41:36 +02:00
|
|
|
import net.minecraft.client.model.ModelBase;
|
2017-06-13 05:55:50 +02:00
|
|
|
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> {
|
2017-06-13 05:55:50 +02:00
|
|
|
|
2018-04-27 17:50:13 +02:00
|
|
|
private final RenderLivingBase<T> renderer;
|
|
|
|
private LayerRenderer<? super T> layer;
|
2017-06-13 05:55:50 +02:00
|
|
|
|
2018-04-27 17:50:13 +02:00
|
|
|
public AbstractPonyLayer(RenderLivingBase<T> renderer, LayerRenderer<? super T> humanLayer) {
|
2017-06-13 05:55:50 +02:00
|
|
|
this.renderer = renderer;
|
|
|
|
this.layer = humanLayer;
|
|
|
|
}
|
|
|
|
|
2018-04-27 17:50:13 +02:00
|
|
|
@SuppressWarnings("unchecked")
|
2018-04-27 13:49:33 +02:00
|
|
|
@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) {
|
2017-06-16 07:41:36 +02:00
|
|
|
ModelBase model = renderer.getMainModel();
|
|
|
|
if (model instanceof ModelHumanPlayer) {
|
2017-06-13 05:55:50 +02:00
|
|
|
// render the human layer
|
2018-04-27 17:50:13 +02:00
|
|
|
layer.doRenderLayer((T)entity, move, swing, ticks, age, headYaw, headPitch, scale);
|
2017-06-13 05:55:50 +02:00
|
|
|
} else {
|
|
|
|
// render the pony layer
|
2018-04-27 17:50:13 +02:00
|
|
|
doPonyRender((T)entity, move, swing, ticks, age, headYaw, headPitch, scale);
|
2017-06-13 05:55:50 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-04-27 13:49:33 +02:00
|
|
|
protected abstract void doPonyRender(T entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale);
|
2017-06-13 05:55:50 +02:00
|
|
|
|
2018-04-27 17:50:13 +02:00
|
|
|
protected RenderLivingBase<T> getRenderer() {
|
2017-06-13 05:55:50 +02:00
|
|
|
return renderer;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean shouldCombineTextures() {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|