From 1423e6d7b08b3ee76afbbfa05d885616a6237c2e Mon Sep 17 00:00:00 2001 From: Sollace Date: Sun, 16 May 2021 16:20:02 +0200 Subject: [PATCH] Fixed skin preview showing background ponies when given a broken skin --- src/main/java/com/minelittlepony/api/pony/IPonyManager.java | 2 ++ .../java/com/minelittlepony/client/hdskins/DummyPony.java | 5 +++-- .../java/com/minelittlepony/client/pony/PonyManager.java | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/minelittlepony/api/pony/IPonyManager.java b/src/main/java/com/minelittlepony/api/pony/IPonyManager.java index 382a9901..8887e3e5 100644 --- a/src/main/java/com/minelittlepony/api/pony/IPonyManager.java +++ b/src/main/java/com/minelittlepony/api/pony/IPonyManager.java @@ -72,4 +72,6 @@ public interface IPonyManager { static boolean isSlimSkin(UUID uuid) { return (uuid.hashCode() & 1) == 1; } + + interface ForcedPony {} } diff --git a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java index 6701725d..fdb06a49 100644 --- a/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java +++ b/src/main/java/com/minelittlepony/client/hdskins/DummyPony.java @@ -1,6 +1,7 @@ package com.minelittlepony.client.hdskins; import com.minelittlepony.api.model.ModelAttributes; +import com.minelittlepony.api.pony.IPonyManager; import com.minelittlepony.client.IPreviewModel; import com.minelittlepony.client.MineLittlePony; import com.minelittlepony.client.model.entity.race.PlayerModels; @@ -10,7 +11,7 @@ import com.minelittlepony.hdskins.client.dummy.TextureProxy; /** * Dummy model used for the skin uploading screen. */ -class DummyPony extends DummyPlayer implements IPreviewModel, ModelAttributes.Swimmer { +class DummyPony extends DummyPlayer implements IPreviewModel, ModelAttributes.Swimmer, IPonyManager.ForcedPony { public DummyPony(TextureProxy textures) { super(textures); @@ -31,7 +32,7 @@ class DummyPony extends DummyPlayer implements IPreviewModel, ModelAttributes.Sw } return PlayerModels.forRace(MineLittlePony.getInstance().getManager() .getPony(this) - .getRace(false)) + .getRace(true)) .getId(super.getModel().contains("slim")); } } diff --git a/src/main/java/com/minelittlepony/client/pony/PonyManager.java b/src/main/java/com/minelittlepony/client/pony/PonyManager.java index a9b43f0d..7ce362fb 100644 --- a/src/main/java/com/minelittlepony/client/pony/PonyManager.java +++ b/src/main/java/com/minelittlepony/client/pony/PonyManager.java @@ -66,6 +66,10 @@ public class PonyManager implements IPonyManager, IdentifiableResourceReloadList return getDefaultPony(uuid); } + if (player instanceof IPonyManager.ForcedPony) { + return getPony(skin); + } + return getPony(skin, uuid); }