mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-11-23 21:38:00 +01:00
Fixed entities not positioned correctly in pegasi's arms
This commit is contained in:
parent
1ef29e4eb5
commit
dee27bb545
3 changed files with 12 additions and 2 deletions
|
@ -79,6 +79,11 @@ public class Main extends MineLPDelegate implements ClientModInitializer {
|
||||||
return IPony.getManager().getPony(entity).map(IPony::race).map(Main::toUnicopiaRace).orElse(Race.HUMAN);
|
return IPony.getManager().getPony(entity).map(IPony::race).map(Main::toUnicopiaRace).orElse(Race.HUMAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getPonyHeight(Entity entity) {
|
||||||
|
return super.getPonyHeight(entity) * IPony.getManager().getPony(entity).map(pony -> pony.metadata().getSize().getScaleFactor() + 0.1F).orElse(1F);
|
||||||
|
}
|
||||||
|
|
||||||
private static Race toUnicopiaRace(com.minelittlepony.api.pony.meta.Race race) {
|
private static Race toUnicopiaRace(com.minelittlepony.api.pony.meta.Race race) {
|
||||||
switch (race) {
|
switch (race) {
|
||||||
case ALICORN:
|
case ALICORN:
|
||||||
|
@ -97,6 +102,7 @@ public class Main extends MineLPDelegate implements ClientModInitializer {
|
||||||
return Race.BAT;
|
return Race.BAT;
|
||||||
case SEAPONY:
|
case SEAPONY:
|
||||||
case UNICORN:
|
case UNICORN:
|
||||||
|
case KIRIN:
|
||||||
return Race.UNICORN;
|
return Race.UNICORN;
|
||||||
default:
|
default:
|
||||||
return Race.HUMAN;
|
return Race.HUMAN;
|
||||||
|
|
|
@ -29,6 +29,10 @@ public class MineLPDelegate {
|
||||||
return Race.HUMAN;
|
return Race.HUMAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getPonyHeight(Entity entity) {
|
||||||
|
return entity.getHeight();
|
||||||
|
}
|
||||||
|
|
||||||
public Race getRace(Entity entity) {
|
public Race getRace(Entity entity) {
|
||||||
return Race.HUMAN;
|
return Race.HUMAN;
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,12 +99,12 @@ public class HeldEntityFeatureRenderer<E extends LivingEntity> implements Access
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Vec3d getCarryPosition(Living<E> entity, Living<?> passenger) {
|
protected Vec3d getCarryPosition(Living<E> entity, Living<?> passenger) {
|
||||||
float passengerHeight = passenger.asEntity().getHeight() / 2F;
|
float passengerHeight = MineLPDelegate.getInstance().getPonyHeight(passenger.asEntity()) / 2F;
|
||||||
float carrierHeight = entity.asEntity().getHeight() / 5F;
|
float carrierHeight = entity.asEntity().getHeight() / 5F;
|
||||||
|
|
||||||
if (entity instanceof Pony pony && MineLPDelegate.getInstance().getPlayerPonyRace(pony.asEntity()).isEquine() && pony.getPhysics().isFlying()) {
|
if (entity instanceof Pony pony && MineLPDelegate.getInstance().getPlayerPonyRace(pony.asEntity()).isEquine() && pony.getPhysics().isFlying()) {
|
||||||
return new Vec3d(0,
|
return new Vec3d(0,
|
||||||
-passenger.asEntity().getHeight() - passengerHeight,
|
-carrierHeight * 10 - passengerHeight * 2,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue