mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 16:24:23 +01:00
Fixed mobs not heeding the scale of their skins
This commit is contained in:
parent
14f98369e8
commit
302a8a22ad
4 changed files with 28 additions and 32 deletions
|
@ -13,7 +13,6 @@ import com.minelittlepony.pony.data.PonySize;
|
|||
import com.minelittlepony.render.AbstractPonyRenderer;
|
||||
import com.minelittlepony.render.PonyRenderer;
|
||||
import com.minelittlepony.render.plane.PlaneRenderer;
|
||||
import com.minelittlepony.transform.PonyTransformation;
|
||||
|
||||
import net.minecraft.client.model.ModelBase;
|
||||
import net.minecraft.client.model.ModelPlayer;
|
||||
|
@ -21,7 +20,6 @@ import net.minecraft.client.model.ModelRenderer;
|
|||
import net.minecraft.client.renderer.GlStateManager;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.EnumHandSide;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
||||
|
@ -720,8 +718,8 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IModel {
|
|||
}
|
||||
|
||||
@Override
|
||||
public PonyTransformation getBodyTransformation() {
|
||||
return (isChild ? PonySize.FOAL : metadata.getSize()).getTranformation();
|
||||
public PonySize getSize() {
|
||||
return isChild ? PonySize.FOAL : metadata.getSize();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -844,7 +842,7 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IModel {
|
|||
rotate(motionPitch, 1, 0, 0);
|
||||
}
|
||||
|
||||
getBodyTransformation().transform(this, part);
|
||||
getSize().getTranformation().transform(this, part);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,8 +3,8 @@ package com.minelittlepony.model.capabilities;
|
|||
import com.minelittlepony.model.BodyPart;
|
||||
import com.minelittlepony.model.armour.PonyArmor;
|
||||
import com.minelittlepony.pony.data.IPonyData;
|
||||
import com.minelittlepony.pony.data.PonySize;
|
||||
import com.minelittlepony.pony.data.PonyWearable;
|
||||
import com.minelittlepony.transform.PonyTransformation;
|
||||
|
||||
public interface IModel extends ICapitated {
|
||||
|
||||
|
@ -20,7 +20,7 @@ public interface IModel extends ICapitated {
|
|||
*/
|
||||
void transform(BodyPart part);
|
||||
|
||||
PonyTransformation getBodyTransformation();
|
||||
PonySize getSize();
|
||||
|
||||
/**
|
||||
* Returns a new pony armour to go with this model. Called on startup by a model wrapper.
|
||||
|
|
|
@ -21,6 +21,8 @@ import net.minecraft.util.ResourceLocation;
|
|||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
// TODO: A lot of this duplicates RenderPonyPlayer
|
||||
// and is the whole reason we had this scaling bug in the first place.
|
||||
public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving<T> implements IRenderPony {
|
||||
|
||||
protected ModelWrapper playerModel;
|
||||
|
@ -31,6 +33,7 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
|
|||
|
||||
public RenderPonyMob(RenderManager manager, ModelWrapper model) {
|
||||
super(manager, model.getBody(), 0.5F);
|
||||
|
||||
setPonyModel(model);
|
||||
|
||||
addLayers();
|
||||
|
@ -61,8 +64,6 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
|
|||
updateModel(entity);
|
||||
|
||||
ponyModel.updateLivingState(entity, pony);
|
||||
|
||||
super.preRenderCallback(entity, ticks);
|
||||
shadowSize = getShadowScale();
|
||||
|
||||
float s = getScaleFactor();
|
||||
|
@ -75,22 +76,6 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getShadowScale() {
|
||||
if (mainModel.isChild) {
|
||||
return 0.25F;
|
||||
} else if (MineLittlePony.getConfig().showscale) {
|
||||
return 0.4F;
|
||||
}
|
||||
return 0.5F;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getScaleFactor() {
|
||||
if (MineLittlePony.getConfig().showscale) return 0.9F;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModelWrapper getModelWrapper() {
|
||||
return playerModel;
|
||||
|
@ -98,14 +83,28 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
|
|||
|
||||
protected void setPonyModel(ModelWrapper model) {
|
||||
playerModel = model;
|
||||
ponyModel = playerModel.getBody();
|
||||
mainModel = ponyModel = playerModel.getBody();
|
||||
}
|
||||
|
||||
protected void updatePony(T entity) {
|
||||
pony = MineLittlePony.getInstance().getManager().getPony(getEntityTexture(entity), false);
|
||||
}
|
||||
|
||||
protected void updateModel(T entity) {
|
||||
pony = MineLittlePony.getInstance().getManager().getPony(getEntityTexture(entity), false);
|
||||
updatePony(entity);
|
||||
playerModel.apply(pony.getMetadata());
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getShadowScale() {
|
||||
return ponyModel.getSize().getShadowSize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getScaleFactor() {
|
||||
return ponyModel.getSize().getScaleFactor();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nonnull
|
||||
protected final ResourceLocation getEntityTexture(T entity) {
|
||||
|
|
|
@ -95,11 +95,12 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony {
|
|||
|
||||
setPonyModel(model);
|
||||
|
||||
layerRenderers.clear();
|
||||
addLayers();
|
||||
}
|
||||
|
||||
protected void addLayers() {
|
||||
layerRenderers.clear();
|
||||
|
||||
addLayer(new LayerPonyArmor<>(this));
|
||||
addLayer(new LayerArrow(this));
|
||||
addLayer(new LayerPonyCustomHead<>(this));
|
||||
|
@ -133,8 +134,6 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony {
|
|||
updateModel(player);
|
||||
|
||||
ponyModel.updateLivingState(player, pony);
|
||||
|
||||
super.preRenderCallback(player, ticks);
|
||||
shadowSize = getShadowScale();
|
||||
|
||||
float s = getScaleFactor();
|
||||
|
@ -231,11 +230,11 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony {
|
|||
|
||||
@Override
|
||||
public float getShadowScale() {
|
||||
return pony.getMetadata().getSize().getShadowSize();
|
||||
return ponyModel.getSize().getShadowSize();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getScaleFactor() {
|
||||
return pony.getMetadata().getSize().getScaleFactor();
|
||||
return ponyModel.getSize().getScaleFactor();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue