MineLittlePony/src/main/java/com/minelittlepony/client/model/IPonyMixinModel.java

103 lines
2.5 KiB
Java
Raw Normal View History

package com.minelittlepony.client.model;
2019-05-27 17:59:15 +02:00
2019-11-22 18:24:22 +01:00
import net.minecraft.client.model.ModelPart;
2019-11-23 18:28:42 +01:00
import net.minecraft.client.util.math.MatrixStack;
2019-05-27 17:59:15 +02:00
import net.minecraft.entity.LivingEntity;
2019-07-20 20:16:54 +02:00
import net.minecraft.util.Arm;
2019-05-27 17:59:15 +02:00
import com.minelittlepony.model.BodyPart;
import com.minelittlepony.model.IUnicorn;
import com.minelittlepony.model.ModelAttributes;
2019-05-27 17:59:15 +02:00
import com.minelittlepony.model.armour.IEquestrianArmour;
2019-07-03 13:17:11 +02:00
import com.minelittlepony.pony.IPony;
2019-05-27 17:59:15 +02:00
import com.minelittlepony.pony.IPonyData;
import com.minelittlepony.pony.meta.Size;
public interface IPonyMixinModel<T extends LivingEntity, M extends IPonyModel<T>> extends IPonyModel<T> {
M mixin();
2019-07-03 13:17:11 +02:00
@Override
default void updateLivingState(T entity, IPony pony) {
mixin().updateLivingState(entity, pony);
}
2019-05-27 17:59:15 +02:00
@Override
2019-11-23 18:28:42 +01:00
default void transform(BodyPart part, MatrixStack stack) {
mixin().transform(part, stack);
2019-05-27 17:59:15 +02:00
}
@Override
default IPonyData getMetadata() {
return mixin().getMetadata();
2019-05-27 17:59:15 +02:00
}
@Override
default ModelAttributes<?> getAttributes() {
return mixin().getAttributes();
2019-05-27 17:59:15 +02:00
}
@Override
default Size getSize() {
return mixin().getSize();
}
@Override
default IEquestrianArmour<?> createArmour() {
return mixin().createArmour();
}
@Override
default void apply(IPonyData meta) {
mixin().apply(meta);
}
@Override
default boolean isRiding() {
return mixin().isRiding();
}
@Override
default float getSwingAmount() {
return mixin().getSwingAmount();
}
@Override
default float getWobbleAmount() {
return mixin().getWobbleAmount();
}
@Override
default float getRiderYOffset() {
return mixin().getRiderYOffset();
}
@Override
2019-11-23 18:28:42 +01:00
default void setArmAngle(Arm arm, MatrixStack stack) {
mixin().setArmAngle(arm, stack);
2019-05-27 17:59:15 +02:00
}
@Override
2019-11-22 18:24:22 +01:00
default ModelPart getHead() {
2019-05-27 17:59:15 +02:00
return mixin().getHead();
}
@Override
2019-11-22 18:24:22 +01:00
default ModelPart getBodyPart(BodyPart part) {
2019-05-27 17:59:15 +02:00
return mixin().getBodyPart(part);
}
2019-07-20 20:16:54 +02:00
interface Caster<T extends LivingEntity, M extends IPonyModel<T> & IUnicorn<ArmModel>, ArmModel> extends IPonyMixinModel<T, M>, IUnicorn<ArmModel> {
2019-05-27 17:59:15 +02:00
@Override
2019-07-20 20:16:54 +02:00
default ArmModel getUnicornArmForSide(Arm side) {
2019-05-27 17:59:15 +02:00
return mixin().getUnicornArmForSide(side);
}
@Override
default boolean isCasting() {
return mixin().isCasting();
}
}
}