MineLittlePony/src/main/java/com/minelittlepony/client/hdskins/PonyPreview.java
2019-11-23 23:19:13 +02:00

63 lines
2 KiB
Java

package com.minelittlepony.client.hdskins;
import net.minecraft.util.Identifier;
import com.minelittlepony.client.MineLittlePony;
import com.minelittlepony.hdskins.dummy.DummyPlayer;
import com.minelittlepony.hdskins.dummy.PlayerPreview;
import com.minelittlepony.hdskins.profile.SkinType;
import com.minelittlepony.pony.IPony;
import com.minelittlepony.pony.meta.Race;
class PonyPreview extends PlayerPreview {
public static final Identifier NO_SKIN_PONY = new Identifier("minelittlepony", "textures/mob/noskin.png");
public static final Identifier NO_SKIN_SEAPONY = new Identifier("minelittlepony", "textures/mob/noskin_seapony.png");
private final DummyPony localPony = new DummyPony(localTextures);
private final DummyPony remotePony = new DummyPony(remoteTextures);
public void setWet(boolean isWet) {
localPony.setWet(isWet);
remotePony.setWet(isWet);
}
@Override
public Identifier getBlankSteveSkin(SkinType type) {
if (type == SkinType.SKIN) {
// Initialization order means this method might be called before class members have been initialized.
// This is something that needs to be fixed in HDSkins
return localPony != null && localPony.wet ? NO_SKIN_SEAPONY : NO_SKIN_PONY;
}
return super.getBlankSteveSkin(type);
}
protected DummyPlayer ponify(DummyPlayer human, DummyPlayer pony) {
Identifier loc = human.getTextures().get(SkinType.SKIN).getId();
if (loc == null) {
return pony;
}
IPony thePony = MineLittlePony.getInstance().getManager().getPony(loc);
Race race = thePony.getRace(true);
if (race.isHuman()) {
return human;
}
return pony;
}
@Override
public DummyPlayer getRemote() {
return ponify(super.getRemote(), remotePony);
}
@Override
public DummyPlayer getLocal() {
return ponify(super.getLocal(), localPony);
}
}