mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2024-11-22 04:27:59 +01:00
Remove hdskins requirement for parsing skins
This commit is contained in:
parent
4050cf23b0
commit
6f6182e331
4 changed files with 39 additions and 42 deletions
|
@ -50,8 +50,6 @@ public class MineLPHDSkins {
|
|||
|
||||
// Convert legacy pony skins
|
||||
manager.addSkinModifier(new LegacySkinConverter());
|
||||
// Parse trigger pixel data
|
||||
manager.addSkinParser(new PonySkinParser());
|
||||
// Clear ponies when skins are cleared
|
||||
PonyManager ponyManager = (PonyManager) MineLittlePony.getInstance().getManager();
|
||||
manager.addClearListener(ponyManager::onSkinCacheCleared);
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
package com.minelittlepony.client.hdskins;
|
||||
|
||||
import com.minelittlepony.MineLittlePony;
|
||||
import com.minelittlepony.client.model.races.PlayerModels;
|
||||
import com.minelittlepony.hdskins.ISkinParser;
|
||||
import com.minelittlepony.hdskins.VanillaModels;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class PonySkinParser implements ISkinParser {
|
||||
|
||||
@Override
|
||||
public void parse(GameProfile profile, MinecraftProfileTexture.Type type, Identifier resource,
|
||||
Map<String, String> metadata) {
|
||||
if (type == MinecraftProfileTexture.Type.SKIN) {
|
||||
boolean slim = VanillaModels.isSlim(metadata.get("model"));
|
||||
// TODO use proper model metadata system
|
||||
|
||||
metadata.put("model", PlayerModels.forRace(MineLittlePony.getInstance().getManager()
|
||||
.getPony(resource, profile.getId())
|
||||
.getRace(false))
|
||||
.getId(slim));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5,17 +5,10 @@ import com.minelittlepony.client.gui.GuiPonySettings;
|
|||
import com.minelittlepony.client.pony.PonyManager;
|
||||
import com.minelittlepony.client.render.tileentities.skull.PonySkullRenderer;
|
||||
import com.minelittlepony.client.settings.ClientPonyConfig;
|
||||
import com.minelittlepony.common.event.SkinAvailableCallback;
|
||||
import com.minelittlepony.common.util.GamePaths;
|
||||
import com.minelittlepony.settings.JsonConfig;
|
||||
import com.minelittlepony.settings.PonyConfig;
|
||||
import com.mojang.authlib.GameProfile;
|
||||
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import net.fabricmc.fabric.api.client.keybinding.FabricKeyBinding;
|
||||
import net.fabricmc.fabric.api.client.keybinding.KeyBindingRegistry;
|
||||
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
|
||||
|
@ -23,7 +16,6 @@ import net.minecraft.client.MinecraftClient;
|
|||
import net.minecraft.client.gui.screen.TitleScreen;
|
||||
import net.minecraft.client.options.KeyBinding;
|
||||
import net.minecraft.client.render.entity.EntityRenderDispatcher;
|
||||
import net.minecraft.client.texture.PlayerSkinProvider;
|
||||
import net.minecraft.client.util.InputUtil;
|
||||
import net.minecraft.resource.ResourceType;
|
||||
import net.minecraft.text.LiteralText;
|
||||
|
@ -32,7 +24,6 @@ import net.minecraft.text.TranslatableText;
|
|||
import net.minecraft.util.Formatting;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.SystemUtil;
|
||||
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
/**
|
||||
|
@ -62,6 +53,9 @@ public class MineLPClient extends MineLittlePony {
|
|||
KeyBindingRegistry.INSTANCE.register(keyBinding);
|
||||
|
||||
ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(ponyManager);
|
||||
|
||||
// Parse trigger pixel data
|
||||
SkinAvailableCallback.EVENT.register(new PonySkinParser());
|
||||
}
|
||||
|
||||
protected ClientPonyConfig createConfig() {
|
||||
|
|
35
src/main/java/com/minelittlepony/client/PonySkinParser.java
Normal file
35
src/main/java/com/minelittlepony/client/PonySkinParser.java
Normal file
|
@ -0,0 +1,35 @@
|
|||
package com.minelittlepony.client;
|
||||
|
||||
import com.minelittlepony.MineLittlePony;
|
||||
import com.minelittlepony.client.model.races.PlayerModels;
|
||||
import com.minelittlepony.common.event.SkinAvailableCallback;
|
||||
import com.minelittlepony.common.util.ProfileTextureUtil;
|
||||
import com.mojang.authlib.minecraft.MinecraftProfileTexture;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class PonySkinParser implements SkinAvailableCallback {
|
||||
|
||||
@Override
|
||||
public void onSkinAvailable(MinecraftProfileTexture.Type type, Identifier id, MinecraftProfileTexture texture) {
|
||||
|
||||
if (type == MinecraftProfileTexture.Type.SKIN) {
|
||||
|
||||
Map<String, String> metadata = ProfileTextureUtil.getMetadata(texture);
|
||||
if (metadata == null) {
|
||||
metadata = new HashMap<>();
|
||||
ProfileTextureUtil.setMetadata(texture, metadata);
|
||||
}
|
||||
boolean slim = "slim".equals(metadata.get("model"));
|
||||
|
||||
// TODO use proper model metadata system
|
||||
metadata.put("model", PlayerModels.forRace(MineLittlePony.getInstance().getManager()
|
||||
.getPony(id)
|
||||
.getRace(false))
|
||||
.getId(slim));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue