mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2024-11-26 14:27:59 +01:00
Sort out loading errors
This commit is contained in:
parent
078fae82f3
commit
0ac4d4cba6
5 changed files with 97 additions and 33 deletions
|
@ -9,6 +9,7 @@ import net.minecraft.client.render.entity.EntityRenderDispatcher;
|
||||||
import net.minecraft.client.render.entity.EntityRenderer;
|
import net.minecraft.client.render.entity.EntityRenderer;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
|
||||||
|
import com.minelittlepony.client.gui.hdskins.MineLPHDSkins;
|
||||||
import com.minelittlepony.client.settings.ClientPonyConfig;
|
import com.minelittlepony.client.settings.ClientPonyConfig;
|
||||||
import com.minelittlepony.hdskins.mixin.MixinEntityRenderDispatcher;
|
import com.minelittlepony.hdskins.mixin.MixinEntityRenderDispatcher;
|
||||||
import com.minelittlepony.settings.SensibleJsonConfig;
|
import com.minelittlepony.settings.SensibleJsonConfig;
|
||||||
|
@ -18,12 +19,17 @@ import java.util.function.Function;
|
||||||
|
|
||||||
public class FabMod implements ClientModInitializer, IModUtilities {
|
public class FabMod implements ClientModInitializer, IModUtilities {
|
||||||
|
|
||||||
private final MineLPClient mlp = new MineLPClient(this);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
mlp.init(SensibleJsonConfig.of(getConfigDirectory(), ClientPonyConfig::new));
|
MineLPClient mlp;
|
||||||
mlp.postInit(MinecraftClient.getInstance());
|
|
||||||
|
if (FabricLoader.getInstance().isModLoaded("hdskins")) {
|
||||||
|
mlp = new MineLPHDSkins(this);
|
||||||
|
} else {
|
||||||
|
mlp = new MineLPClient(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
mlp.init(SensibleJsonConfig.of(getConfigDirectory().resolve("minelp.json"), ClientPonyConfig::new));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -2,14 +2,9 @@ package com.minelittlepony.client;
|
||||||
|
|
||||||
import com.minelittlepony.MineLittlePony;
|
import com.minelittlepony.MineLittlePony;
|
||||||
import com.minelittlepony.client.gui.GuiPonySettings;
|
import com.minelittlepony.client.gui.GuiPonySettings;
|
||||||
import com.minelittlepony.client.gui.hdskins.GuiSkinsMineLP;
|
|
||||||
import com.minelittlepony.client.pony.PonyManager;
|
import com.minelittlepony.client.pony.PonyManager;
|
||||||
import com.minelittlepony.client.render.tileentities.skull.PonySkullRenderer;
|
import com.minelittlepony.client.render.tileentities.skull.PonySkullRenderer;
|
||||||
import com.minelittlepony.common.client.gui.GuiHost;
|
import com.minelittlepony.common.client.gui.GuiHost;
|
||||||
import com.minelittlepony.hdskins.HDSkins;
|
|
||||||
import com.minelittlepony.hdskins.net.LegacySkinServer;
|
|
||||||
import com.minelittlepony.hdskins.net.SkinServer;
|
|
||||||
import com.minelittlepony.hdskins.net.ValhallaSkinServer;
|
|
||||||
import com.minelittlepony.settings.PonyConfig;
|
import com.minelittlepony.settings.PonyConfig;
|
||||||
|
|
||||||
import net.minecraft.ChatFormat;
|
import net.minecraft.ChatFormat;
|
||||||
|
@ -30,9 +25,6 @@ import org.lwjgl.glfw.GLFW;
|
||||||
*/
|
*/
|
||||||
public class MineLPClient extends MineLittlePony {
|
public class MineLPClient extends MineLittlePony {
|
||||||
|
|
||||||
private static final String MINELP_VALHALLA_SERVER = "http://skins.minelittlepony-mod.com";
|
|
||||||
private static final String MINELP_LEGACY_SERVER = "http://minelpskins.voxelmodpack.com";
|
|
||||||
private static final String MINELP_LEGACY_GATEWAY = "http://minelpskinmanager.voxelmodpack.com";
|
|
||||||
|
|
||||||
static final KeyBinding SETTINGS_GUI = new KeyBinding("Settings", GLFW.GLFW_KEY_F9, "Mine Little Pony");
|
static final KeyBinding SETTINGS_GUI = new KeyBinding("Settings", GLFW.GLFW_KEY_F9, "Mine Little Pony");
|
||||||
|
|
||||||
|
@ -54,36 +46,20 @@ public class MineLPClient extends MineLittlePony {
|
||||||
utilities = utils;
|
utilities = utils;
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(PonyConfig newConfig) {
|
protected void init(PonyConfig newConfig) {
|
||||||
config = newConfig;
|
config = newConfig;
|
||||||
ponyManager = new PonyManager(config);
|
ponyManager = new PonyManager(config);
|
||||||
|
|
||||||
ReloadableResourceManager irrm = (ReloadableResourceManager) MinecraftClient.getInstance().getResourceManager();
|
|
||||||
irrm.registerListener(ponyManager);
|
|
||||||
|
|
||||||
// This also makes it the default gateway server.
|
|
||||||
SkinServer.defaultServers.add(new LegacySkinServer(MINELP_LEGACY_SERVER, MINELP_LEGACY_GATEWAY));
|
|
||||||
SkinServer.defaultServers.add(0, new ValhallaSkinServer(MINELP_VALHALLA_SERVER));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the game is ready.
|
* Called when the game is ready.
|
||||||
*/
|
*/
|
||||||
void postInit(MinecraftClient minecraft) {
|
public void postInit(MinecraftClient minecraft) {
|
||||||
|
|
||||||
HDSkins manager = HDSkins.getInstance();
|
|
||||||
// manager.setSkinUrl(SKIN_SERVER_URL);
|
|
||||||
// manager.setGatewayURL(GATEWAY_URL);
|
|
||||||
manager.addSkinModifier(new PonySkinModifier());
|
|
||||||
manager.addSkinParser(new PonySkinParser());
|
|
||||||
// logger.info("Set MineLP skin server URL.");
|
|
||||||
manager.addClearListener(ponyManager);
|
|
||||||
|
|
||||||
manager.setSkinsGui(GuiSkinsMineLP::new);
|
|
||||||
|
|
||||||
EntityRenderDispatcher rm = minecraft.getEntityRenderManager();
|
EntityRenderDispatcher rm = minecraft.getEntityRenderManager();
|
||||||
|
|
||||||
renderManager.initialiseRenderers(rm);
|
renderManager.initialiseRenderers(rm);
|
||||||
|
|
||||||
|
ReloadableResourceManager irrm = (ReloadableResourceManager) MinecraftClient.getInstance().getResourceManager();
|
||||||
|
irrm.registerListener(ponyManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onTick(MinecraftClient minecraft, boolean inGame) {
|
void onTick(MinecraftClient minecraft, boolean inGame) {
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
package com.minelittlepony.client.gui.hdskins;
|
||||||
|
|
||||||
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
|
||||||
|
import com.minelittlepony.client.IModUtilities;
|
||||||
|
import com.minelittlepony.client.MineLPClient;
|
||||||
|
import com.minelittlepony.client.PonySkinModifier;
|
||||||
|
import com.minelittlepony.client.PonySkinParser;
|
||||||
|
|
||||||
|
import com.minelittlepony.hdskins.HDSkins;
|
||||||
|
import com.minelittlepony.hdskins.net.LegacySkinServer;
|
||||||
|
import com.minelittlepony.hdskins.net.SkinServer;
|
||||||
|
import com.minelittlepony.hdskins.net.ValhallaSkinServer;
|
||||||
|
import com.minelittlepony.settings.PonyConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* All the interactions with HD Skins.
|
||||||
|
*/
|
||||||
|
public class MineLPHDSkins extends MineLPClient {
|
||||||
|
private static final String MINELP_VALHALLA_SERVER = "http://skins.minelittlepony-mod.com";
|
||||||
|
|
||||||
|
private static final String MINELP_LEGACY_SERVER = "http://minelpskins.voxelmodpack.com";
|
||||||
|
private static final String MINELP_LEGACY_GATEWAY = "http://minelpskinmanager.voxelmodpack.com";
|
||||||
|
|
||||||
|
public MineLPHDSkins(IModUtilities utils) {
|
||||||
|
super(utils);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void init(PonyConfig newConfig) {
|
||||||
|
super.init(newConfig);
|
||||||
|
|
||||||
|
// Register pony servers
|
||||||
|
SkinServer.defaultServers.add(new LegacySkinServer(MINELP_LEGACY_SERVER, MINELP_LEGACY_GATEWAY));
|
||||||
|
// And make valhalla the default
|
||||||
|
SkinServer.defaultServers.add(0, new ValhallaSkinServer(MINELP_VALHALLA_SERVER));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when the game is ready.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void postInit(MinecraftClient minecraft) {
|
||||||
|
super.postInit(minecraft);
|
||||||
|
|
||||||
|
HDSkins manager = HDSkins.getInstance();
|
||||||
|
|
||||||
|
// Convert legacy pony skins
|
||||||
|
manager.addSkinModifier(new PonySkinModifier());
|
||||||
|
// Parse trigger pixel data
|
||||||
|
manager.addSkinParser(new PonySkinParser());
|
||||||
|
// Clear ponies when skins are cleared
|
||||||
|
manager.addClearListener(getManager());
|
||||||
|
// Ponify the skins GUI.
|
||||||
|
manager.setSkinsGui(GuiSkinsMineLP::new);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.minelittlepony.client.mixin;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
import com.minelittlepony.client.MineLPClient;
|
||||||
|
|
||||||
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
import net.minecraft.client.WindowEventHandler;
|
||||||
|
import net.minecraft.util.NonBlockingThreadExecutor;
|
||||||
|
import net.minecraft.util.snooper.SnooperListener;
|
||||||
|
|
||||||
|
@Mixin(MinecraftClient.class)
|
||||||
|
public abstract class MixinMinecraftClient extends NonBlockingThreadExecutor<Runnable> implements SnooperListener, WindowEventHandler, AutoCloseable {
|
||||||
|
|
||||||
|
public MixinMinecraftClient() { super(null); }
|
||||||
|
|
||||||
|
@Inject(method = "init()V", at = @At("RETURN"))
|
||||||
|
private void onInit(CallbackInfo info) {
|
||||||
|
MineLPClient.getInstance().postInit(MinecraftClient.getInstance());
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,6 +10,7 @@
|
||||||
"MixinFirstPersonRenderer",
|
"MixinFirstPersonRenderer",
|
||||||
"MixinGlStateManager",
|
"MixinGlStateManager",
|
||||||
"MixinItemRenderer",
|
"MixinItemRenderer",
|
||||||
|
"MixinMinecraftClient",
|
||||||
"MixinRenderManager",
|
"MixinRenderManager",
|
||||||
"MixinThreadDownloadImageData"
|
"MixinThreadDownloadImageData"
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in a new issue