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.AbstractPonyRenderer;
|
||||||
import com.minelittlepony.render.PonyRenderer;
|
import com.minelittlepony.render.PonyRenderer;
|
||||||
import com.minelittlepony.render.plane.PlaneRenderer;
|
import com.minelittlepony.render.plane.PlaneRenderer;
|
||||||
import com.minelittlepony.transform.PonyTransformation;
|
|
||||||
|
|
||||||
import net.minecraft.client.model.ModelBase;
|
import net.minecraft.client.model.ModelBase;
|
||||||
import net.minecraft.client.model.ModelPlayer;
|
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.client.renderer.GlStateManager;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.util.EnumHandSide;
|
import net.minecraft.util.EnumHandSide;
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
|
@ -720,8 +718,8 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PonyTransformation getBodyTransformation() {
|
public PonySize getSize() {
|
||||||
return (isChild ? PonySize.FOAL : metadata.getSize()).getTranformation();
|
return isChild ? PonySize.FOAL : metadata.getSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -844,7 +842,7 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IModel {
|
||||||
rotate(motionPitch, 1, 0, 0);
|
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.BodyPart;
|
||||||
import com.minelittlepony.model.armour.PonyArmor;
|
import com.minelittlepony.model.armour.PonyArmor;
|
||||||
import com.minelittlepony.pony.data.IPonyData;
|
import com.minelittlepony.pony.data.IPonyData;
|
||||||
|
import com.minelittlepony.pony.data.PonySize;
|
||||||
import com.minelittlepony.pony.data.PonyWearable;
|
import com.minelittlepony.pony.data.PonyWearable;
|
||||||
import com.minelittlepony.transform.PonyTransformation;
|
|
||||||
|
|
||||||
public interface IModel extends ICapitated {
|
public interface IModel extends ICapitated {
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ public interface IModel extends ICapitated {
|
||||||
*/
|
*/
|
||||||
void transform(BodyPart part);
|
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.
|
* 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;
|
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 {
|
public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving<T> implements IRenderPony {
|
||||||
|
|
||||||
protected ModelWrapper playerModel;
|
protected ModelWrapper playerModel;
|
||||||
|
@ -31,6 +33,7 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
|
||||||
|
|
||||||
public RenderPonyMob(RenderManager manager, ModelWrapper model) {
|
public RenderPonyMob(RenderManager manager, ModelWrapper model) {
|
||||||
super(manager, model.getBody(), 0.5F);
|
super(manager, model.getBody(), 0.5F);
|
||||||
|
|
||||||
setPonyModel(model);
|
setPonyModel(model);
|
||||||
|
|
||||||
addLayers();
|
addLayers();
|
||||||
|
@ -61,8 +64,6 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
|
||||||
updateModel(entity);
|
updateModel(entity);
|
||||||
|
|
||||||
ponyModel.updateLivingState(entity, pony);
|
ponyModel.updateLivingState(entity, pony);
|
||||||
|
|
||||||
super.preRenderCallback(entity, ticks);
|
|
||||||
shadowSize = getShadowScale();
|
shadowSize = getShadowScale();
|
||||||
|
|
||||||
float s = getScaleFactor();
|
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
|
@Override
|
||||||
public ModelWrapper getModelWrapper() {
|
public ModelWrapper getModelWrapper() {
|
||||||
return playerModel;
|
return playerModel;
|
||||||
|
@ -98,14 +83,28 @@ public abstract class RenderPonyMob<T extends EntityLiving> extends RenderLiving
|
||||||
|
|
||||||
protected void setPonyModel(ModelWrapper model) {
|
protected void setPonyModel(ModelWrapper model) {
|
||||||
playerModel = 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) {
|
protected void updateModel(T entity) {
|
||||||
pony = MineLittlePony.getInstance().getManager().getPony(getEntityTexture(entity), false);
|
updatePony(entity);
|
||||||
playerModel.apply(pony.getMetadata());
|
playerModel.apply(pony.getMetadata());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getShadowScale() {
|
||||||
|
return ponyModel.getSize().getShadowSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getScaleFactor() {
|
||||||
|
return ponyModel.getSize().getScaleFactor();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nonnull
|
@Nonnull
|
||||||
protected final ResourceLocation getEntityTexture(T entity) {
|
protected final ResourceLocation getEntityTexture(T entity) {
|
||||||
|
|
|
@ -95,11 +95,12 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony {
|
||||||
|
|
||||||
setPonyModel(model);
|
setPonyModel(model);
|
||||||
|
|
||||||
layerRenderers.clear();
|
|
||||||
addLayers();
|
addLayers();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addLayers() {
|
protected void addLayers() {
|
||||||
|
layerRenderers.clear();
|
||||||
|
|
||||||
addLayer(new LayerPonyArmor<>(this));
|
addLayer(new LayerPonyArmor<>(this));
|
||||||
addLayer(new LayerArrow(this));
|
addLayer(new LayerArrow(this));
|
||||||
addLayer(new LayerPonyCustomHead<>(this));
|
addLayer(new LayerPonyCustomHead<>(this));
|
||||||
|
@ -133,8 +134,6 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony {
|
||||||
updateModel(player);
|
updateModel(player);
|
||||||
|
|
||||||
ponyModel.updateLivingState(player, pony);
|
ponyModel.updateLivingState(player, pony);
|
||||||
|
|
||||||
super.preRenderCallback(player, ticks);
|
|
||||||
shadowSize = getShadowScale();
|
shadowSize = getShadowScale();
|
||||||
|
|
||||||
float s = getScaleFactor();
|
float s = getScaleFactor();
|
||||||
|
@ -231,11 +230,11 @@ public class RenderPonyPlayer extends RenderPlayer implements IRenderPony {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getShadowScale() {
|
public float getShadowScale() {
|
||||||
return pony.getMetadata().getSize().getShadowSize();
|
return ponyModel.getSize().getShadowSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getScaleFactor() {
|
public float getScaleFactor() {
|
||||||
return pony.getMetadata().getSize().getScaleFactor();
|
return ponyModel.getSize().getScaleFactor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue