mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-22 12:23:10 +01:00
63 lines
2 KiB
Java
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);
|
|
}
|
|
}
|