Fixed mobs not heeding the scale of their skins

This commit is contained in:
Sollace 2018-07-26 18:45:22 +02:00
parent 14f98369e8
commit 302a8a22ad
4 changed files with 28 additions and 32 deletions

View file

@ -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);
}
/**

View file

@ -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.

View file

@ -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) {

View file

@ -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();
}
}