Minor reorganisation

This commit is contained in:
Sollace 2019-04-14 22:06:25 +02:00
parent 965d701da4
commit 1e9a663aa2
13 changed files with 36 additions and 65 deletions

View file

@ -18,8 +18,6 @@ import com.minelittlepony.pony.IPonyData;
import com.minelittlepony.pony.meta.Size; import com.minelittlepony.pony.meta.Size;
import com.minelittlepony.util.math.MathUtil; import com.minelittlepony.util.math.MathUtil;
import javax.annotation.Nullable;
import net.minecraft.client.renderer.entity.model.ModelBase; import net.minecraft.client.renderer.entity.model.ModelBase;
import net.minecraft.client.renderer.entity.model.ModelPlayer; import net.minecraft.client.renderer.entity.model.ModelPlayer;
import net.minecraft.client.renderer.entity.model.ModelRenderer; import net.minecraft.client.renderer.entity.model.ModelRenderer;
@ -50,7 +48,7 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IClientMo
/** /**
* Associated pony data. * Associated pony data.
*/ */
public IPonyData metadata = new PonyData(); private IPonyData metadata = new PonyData();
/** /**
* Vertical pitch whilst flying. * Vertical pitch whilst flying.
@ -274,12 +272,6 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IClientMo
return bipedHead; return bipedHead;
} }
@Nullable
@Override
public ModelRenderer getBody() {
return bipedBody;
}
@Override @Override
public void setPitch(float pitch) { public void setPitch(float pitch) {
motionPitch = pitch; motionPitch = pitch;
@ -469,6 +461,18 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IClientMo
alignArmForAction(bipedRightArm, rightArmPose, leftArmPose, both, swing, -1); alignArmForAction(bipedRightArm, rightArmPose, leftArmPose, both, swing, -1);
} }
@Override
public ModelRenderer getBodyPart(BodyPart part) {
switch (part) {
default:
case HEAD: return bipedHead;
case NECK: return neck;
case TAIL:
case LEGS:
case BODY: return bipedBody;
}
}
/** /**
* Aligns an arm for the appropriate arm pose * Aligns an arm for the appropriate arm pose
* *
@ -764,6 +768,11 @@ public abstract class AbstractPonyModel extends ModelPlayer implements IClientMo
return metadata; return metadata;
} }
@Override
public void apply(IPonyData meta) {
metadata = meta;
}
@Override @Override
public boolean isCrouching() { public boolean isCrouching() {
return isCrouching; return isCrouching;

View file

@ -2,9 +2,11 @@ package com.minelittlepony.client.model;
import net.minecraft.client.renderer.entity.model.ModelRenderer; import net.minecraft.client.renderer.entity.model.ModelRenderer;
import com.minelittlepony.model.BodyPart;
import com.minelittlepony.model.ICapitated; import com.minelittlepony.model.ICapitated;
import com.minelittlepony.model.IModel; import com.minelittlepony.model.IModel;
public interface IClientModel extends IModel, ICapitated<ModelRenderer> { public interface IClientModel extends IModel, ICapitated<ModelRenderer> {
ModelRenderer getBodyPart(BodyPart part);
} }

View file

@ -51,7 +51,7 @@ public class ModelWrapper implements IModelWrapper {
init(); init();
} }
body.metadata = meta; body.apply(meta);
armor.apply(meta); armor.apply(meta);
} }

View file

@ -16,8 +16,8 @@ public class PonyArmor implements IEquestrianArmour<ModelPonyArmor> {
@Override @Override
public void apply(IPonyData meta) { public void apply(IPonyData meta) {
outerLayer.metadata = meta; outerLayer.apply(meta);
innerLayer.metadata = meta; innerLayer.apply(meta);
} }
@Override @Override

View file

@ -5,8 +5,6 @@ import com.minelittlepony.client.util.render.PonyRenderer;
import com.minelittlepony.model.ICapitated; import com.minelittlepony.model.ICapitated;
import com.minelittlepony.pony.IPonyData; import com.minelittlepony.pony.IPonyData;
import javax.annotation.Nullable;
import net.minecraft.client.renderer.entity.model.ModelHumanoidHead; import net.minecraft.client.renderer.entity.model.ModelHumanoidHead;
import net.minecraft.client.renderer.entity.model.ModelRenderer; import net.minecraft.client.renderer.entity.model.ModelRenderer;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -41,12 +39,6 @@ public class ModelPonyHead extends ModelHumanoidHead implements ICapitated<Model
return skeletonHead; return skeletonHead;
} }
@Nullable
@Override
public ModelRenderer getBody() {
return null;
}
@Override @Override
public boolean hasHeadGear() { public boolean hasHeadGear() {
return false; return false;

View file

@ -2,13 +2,11 @@ package com.minelittlepony.client.model.gear;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.model.ModelBase; import net.minecraft.client.renderer.entity.model.ModelBase;
import net.minecraft.client.renderer.entity.model.ModelRenderer;
import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import com.minelittlepony.client.model.AbstractPonyModel;
import com.minelittlepony.model.PonyModelConstants; import com.minelittlepony.model.PonyModelConstants;
public abstract class AbstractGear extends ModelBase implements IGear, PonyModelConstants { public abstract class AbstractGear extends ModelBase implements IGear, PonyModelConstants {
@ -20,18 +18,6 @@ public abstract class AbstractGear extends ModelBase implements IGear, PonyModel
init(0, 0); init(0, 0);
} }
@Override
public ModelRenderer getOriginBodyPart(AbstractPonyModel model) {
switch (getGearLocation()) {
default:
case HEAD: return model.getHead();
case NECK: return model.neck;
case TAIL:
case LEGS:
case BODY: return model.getBody();
}
}
@Override @Override
public void renderSeparately(Entity entity, float scale) { public void renderSeparately(Entity entity, float scale) {
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS); GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);

View file

@ -1,15 +1,12 @@
package com.minelittlepony.client.model.gear; package com.minelittlepony.client.model.gear;
import net.minecraft.client.renderer.entity.model.ModelRenderer;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import com.minelittlepony.client.model.AbstractPonyModel;
import com.minelittlepony.client.model.IClientModel; import com.minelittlepony.client.model.IClientModel;
import com.minelittlepony.model.BodyPart; import com.minelittlepony.model.BodyPart;
import com.minelittlepony.model.IPart; import com.minelittlepony.model.IPart;
import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
public interface IGear extends IPart { public interface IGear extends IPart {
@ -36,12 +33,6 @@ public interface IGear extends IPart {
@Nullable @Nullable
ResourceLocation getTexture(Entity entity); ResourceLocation getTexture(Entity entity);
/**
* Gets the actual body part this wearable will latch onto.
*/
@Nonnull
ModelRenderer getOriginBodyPart(AbstractPonyModel model);
/** /**
* Orients this wearable. * Orients this wearable.
*/ */

View file

@ -110,21 +110,11 @@ public class ModelUnicorn extends ModelEarthPony implements IUnicorn<PonyRendere
return side == EnumHandSide.LEFT ? unicornArmLeft : unicornArmRight; return side == EnumHandSide.LEFT ? unicornArmLeft : unicornArmRight;
} }
@Override
public boolean canCast() {
return metadata.hasMagic();
}
@Override @Override
public boolean isCasting() { public boolean isCasting() {
return rightArmPose != ArmPose.EMPTY || leftArmPose != ArmPose.EMPTY; return rightArmPose != ArmPose.EMPTY || leftArmPose != ArmPose.EMPTY;
} }
@Override
public int getMagicColor() {
return metadata.getGlowColor();
}
@Override @Override
protected void ponyCrouch() { protected void ponyCrouch() {
super.ponyCrouch(); super.ponyCrouch();

View file

@ -53,7 +53,7 @@ public class LayerGear<T extends EntityLivingBase> extends AbstractPonyLayer<T>
if (gear.canRender(model, entity)) { if (gear.canRender(model, entity)) {
GlStateManager.pushMatrix(); GlStateManager.pushMatrix();
model.transform(gear.getGearLocation()); model.transform(gear.getGearLocation());
gear.getOriginBodyPart(model).postRender(scale); model.getBodyPart(gear.getGearLocation()).postRender(scale);
if (gear instanceof IStackable) { if (gear instanceof IStackable) {
BodyPart part = gear.getGearLocation(); BodyPart part = gear.getGearLocation();

View file

@ -33,7 +33,7 @@ public class LayerPonyCape extends AbstractPonyLayer<AbstractClientPlayer> {
model.transform(BodyPart.BODY); model.transform(BodyPart.BODY);
translatef(0, 0.24F, 0); translatef(0, 0.24F, 0);
model.getBody().postRender(scale); model.getBodyPart(BodyPart.BODY).postRender(scale);
double capeX = player.prevChasingPosX + (player.chasingPosX - player.prevChasingPosX) * scale - (player.prevPosX + (player.posX - player.prevPosX) * scale); double capeX = player.prevChasingPosX + (player.chasingPosX - player.prevChasingPosX) * scale - (player.prevPosX + (player.posX - player.prevPosX) * scale);
double capeY = player.prevChasingPosY + (player.chasingPosY - player.prevChasingPosY) * scale - (player.prevPosY + (player.posY - player.prevPosY) * scale); double capeY = player.prevChasingPosY + (player.chasingPosY - player.prevChasingPosY) * scale - (player.prevPosY + (player.posY - player.prevPosY) * scale);

View file

@ -1,19 +1,11 @@
package com.minelittlepony.model; package com.minelittlepony.model;
import javax.annotation.Nullable;
public interface ICapitated<ModelRenderer> { public interface ICapitated<ModelRenderer> {
/** /**
* Gets the head of this capitated object. * Gets the head of this capitated object.
*/ */
ModelRenderer getHead(); ModelRenderer getHead();
/**
* Gets the main body
*/
@Nullable
ModelRenderer getBody();
/** /**
* Returns true if we're wearing any unconventional headgear (ie. a Pumpkin) * Returns true if we're wearing any unconventional headgear (ie. a Pumpkin)
*/ */

View file

@ -39,6 +39,11 @@ public interface IModel {
*/ */
IPonyData getMetadata(); IPonyData getMetadata();
/**
* Sets the pony metadata object associated with this model.
*/
void apply(IPonyData meta);
/** /**
* Returns true if this model is on the ground and crouching. * Returns true if this model is on the ground and crouching.
*/ */

View file

@ -11,7 +11,9 @@ public interface IUnicorn<Arm> extends IModel {
/** /**
* Returns true if this model is being applied to a race that can use magic. * Returns true if this model is being applied to a race that can use magic.
*/ */
boolean canCast(); default boolean canCast() {
return getMetadata().hasMagic();
}
/** /**
* Returns true if this model is currently using magic (horn is lit). * Returns true if this model is currently using magic (horn is lit).
@ -22,5 +24,7 @@ public interface IUnicorn<Arm> extends IModel {
/** /**
* Gets the preferred magic color for this mode. * Gets the preferred magic color for this mode.
*/ */
int getMagicColor(); default int getMagicColor() {
return getMetadata().getGlowColor();
}
} }