2016-11-17 05:45:04 +01:00
|
|
|
package com.minelittlepony.renderer.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) {
|
|
|
|
this.renderer = render;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean shouldCombineTextures() {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void renderOverlay(T skele, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, float scale) {
|
|
|
|
ModelBase overlayModel = this.getOverlayModel();
|
|
|
|
overlayModel.setModelAttributes(this.renderer.getMainModel());
|
|
|
|
overlayModel.setLivingAnimations(skele, limbSwing, limbSwingAmount, partialTicks);
|
|
|
|
renderer.bindTexture(this.getOverlayTexture());
|
|
|
|
overlayModel.render(skele, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scale);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected abstract ModelBase getOverlayModel();
|
|
|
|
|
|
|
|
protected abstract ResourceLocation getOverlayTexture();
|
|
|
|
|
|
|
|
}
|