2016-11-17 05:45:04 +01:00
|
|
|
package com.minelittlepony.renderer;
|
2015-08-02 00:36:33 +02:00
|
|
|
|
2016-11-17 05:45:04 +01:00
|
|
|
import com.minelittlepony.MineLittlePony;
|
|
|
|
import com.minelittlepony.ducks.IRenderPony;
|
|
|
|
import com.minelittlepony.model.PlayerModel;
|
|
|
|
import com.minelittlepony.renderer.layer.LayerHeldPonyItem;
|
|
|
|
import com.minelittlepony.renderer.layer.LayerPonyArmor;
|
2016-12-29 09:08:05 +01:00
|
|
|
import com.minelittlepony.renderer.layer.LayerPonyCustomHead;
|
2017-06-13 05:55:50 +02:00
|
|
|
import com.minelittlepony.renderer.layer.LayerPonyElytra;
|
2016-09-08 05:53:23 +02:00
|
|
|
import com.voxelmodpack.hdskins.HDSkinManager;
|
2015-08-02 00:36:33 +02:00
|
|
|
import net.minecraft.client.renderer.entity.RenderLiving;
|
|
|
|
import net.minecraft.client.renderer.entity.RenderManager;
|
|
|
|
import net.minecraft.entity.EntityLiving;
|
2016-09-08 05:53:23 +02:00
|
|
|
import net.minecraft.util.ResourceLocation;
|
2015-08-02 00:36:33 +02:00
|
|
|
|
2017-06-13 05:55:50 +02:00
|
|
|
import javax.annotation.Nonnull;
|
2017-06-16 07:35:02 +02:00
|
|
|
import javax.annotation.OverridingMethodsMustInvokeSuper;
|
2017-06-13 05:55:50 +02:00
|
|
|
|
2016-03-01 06:33:09 +01:00
|
|
|
public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving<T> implements IRenderPony {
|
2015-12-15 06:32:57 +01:00
|
|
|
|
2015-08-02 00:36:33 +02:00
|
|
|
protected PlayerModel playerModel;
|
|
|
|
|
|
|
|
public RenderPonyMob(RenderManager renderManager, PlayerModel playerModel) {
|
2016-11-25 05:40:19 +01:00
|
|
|
super(renderManager, playerModel.getModel(), 0.5F);
|
2015-08-02 00:36:33 +02:00
|
|
|
this.playerModel = playerModel;
|
|
|
|
|
2017-06-13 05:55:50 +02:00
|
|
|
addLayers();
|
|
|
|
}
|
|
|
|
|
|
|
|
protected void addLayers() {
|
|
|
|
|
2015-08-02 00:36:33 +02:00
|
|
|
this.addLayer(new LayerPonyArmor(this));
|
|
|
|
this.addLayer(new LayerHeldPonyItem(this));
|
|
|
|
// this.addLayer(new LayerArrow(this));
|
2016-12-29 09:08:05 +01:00
|
|
|
this.addLayer(new LayerPonyCustomHead(this));
|
2016-12-27 03:15:25 +01:00
|
|
|
this.addLayer(new LayerPonyElytra(this));
|
2015-08-02 00:36:33 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-03-01 06:33:09 +01:00
|
|
|
public void doRender(T entity, double xPosition, double yPosition, double zPosition, float yaw,
|
2017-06-13 11:09:55 +02:00
|
|
|
float partialTicks) {
|
2015-08-02 00:36:33 +02:00
|
|
|
double yOrigin = yPosition;
|
|
|
|
if (entity.isSneaking()) {
|
|
|
|
yOrigin -= 0.125D;
|
|
|
|
}
|
|
|
|
super.doRender(entity, xPosition, yOrigin, zPosition, yaw, partialTicks);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-06-16 07:35:02 +02:00
|
|
|
@OverridingMethodsMustInvokeSuper
|
2016-05-20 19:49:32 +02:00
|
|
|
protected void preRenderCallback(T entity, float partialTickTime) {
|
2015-12-15 06:32:57 +01:00
|
|
|
this.playerModel.getModel().isSneak = false;
|
|
|
|
this.playerModel.getModel().isFlying = false;
|
|
|
|
this.playerModel.getModel().isSleeping = false;
|
|
|
|
|
2017-06-13 05:55:50 +02:00
|
|
|
ResourceLocation loc = getEntityTexture(entity);
|
2018-04-24 17:12:23 +02:00
|
|
|
this.playerModel.apply(MineLittlePony.getInstance().getManager().getPony(loc, false).getMetadata());
|
2015-12-15 06:32:57 +01:00
|
|
|
|
2017-06-16 07:35:02 +02:00
|
|
|
if (mainModel.isChild) {
|
|
|
|
this.shadowSize = 0.25F;
|
|
|
|
} else if (MineLittlePony.getConfig().showscale) {
|
2015-12-15 06:32:57 +01:00
|
|
|
this.shadowSize = 0.4F;
|
2017-06-13 05:55:50 +02:00
|
|
|
} else {
|
|
|
|
this.shadowSize = 0.5F;
|
2015-12-15 06:32:57 +01:00
|
|
|
}
|
2015-08-02 00:36:33 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2018-04-24 14:55:32 +02:00
|
|
|
public PlayerModel getPlayerModel() {
|
2015-08-02 00:36:33 +02:00
|
|
|
return playerModel;
|
|
|
|
}
|
2016-09-08 05:53:23 +02:00
|
|
|
|
2017-06-13 05:55:50 +02:00
|
|
|
@Override
|
|
|
|
@Nonnull
|
|
|
|
protected final ResourceLocation getEntityTexture(T entity) {
|
|
|
|
return HDSkinManager.INSTANCE.getConvertedSkin(getTexture(entity));
|
2016-09-08 05:53:23 +02:00
|
|
|
}
|
2017-06-13 05:55:50 +02:00
|
|
|
|
|
|
|
protected abstract ResourceLocation getTexture(T entity);
|
2015-08-02 00:36:33 +02:00
|
|
|
}
|