diff --git a/src/hdskins/java/com/minelittlepony/hdskins/HDSkins.java b/src/hdskins/java/com/minelittlepony/hdskins/HDSkins.java index 7a553a3b..cd8af50c 100644 --- a/src/hdskins/java/com/minelittlepony/hdskins/HDSkins.java +++ b/src/hdskins/java/com/minelittlepony/hdskins/HDSkins.java @@ -10,7 +10,6 @@ import com.google.gson.annotations.Expose; import com.minelittlepony.hdskins.gui.EntityPlayerModel; import com.minelittlepony.hdskins.gui.RenderPlayerModel; import com.minelittlepony.hdskins.server.SkinServer; -import com.minelittlepony.hdskins.upload.GLWindow; import java.io.File; import java.util.List; @@ -33,9 +32,6 @@ public abstract class HDSkins { @Expose public List skin_servers = SkinServer.defaultServers; - @Expose - public boolean experimentalSkinDrop = false; - @Expose public String lastChosenFile = ""; @@ -55,14 +51,5 @@ public abstract class HDSkins { // register skin servers. skin_servers.forEach(HDSkinManager.INSTANCE::addSkinServer); - - if (experimentalSkinDrop) { - GLWindow.create(); - } } - - public void onToggledFullScreen(boolean fullScreen) { - GLWindow.current().refresh(fullScreen); - } - } diff --git a/src/hdskinsfml/java/com/minelittlepony/hdskins/fml/Config.java b/src/hdskinsfml/java/com/minelittlepony/hdskins/fml/Config.java new file mode 100644 index 00000000..fd6d8ad8 --- /dev/null +++ b/src/hdskinsfml/java/com/minelittlepony/hdskins/fml/Config.java @@ -0,0 +1,73 @@ +package com.minelittlepony.hdskins.fml; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.Entity; +import net.minecraftforge.fml.client.registry.RenderingRegistry; +import net.minecraftforge.fml.loading.FMLPaths; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.stream.JsonWriter; +import com.minelittlepony.hdskins.HDSkins; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.function.Function; + +public class Config extends HDSkins { + static final Gson gson = new GsonBuilder() + .setPrettyPrinting() + .excludeFieldsWithoutExposeAnnotation() + .create(); + + private final Path configFile; + + Config(Path file) { + configFile = file; + } + + @Override + public File getAssetsDirectory() { + return FMLPaths.CONFIGDIR.get().getParent().toAbsolutePath().toFile(); + } + + @Override + public void saveConfig() { + try (JsonWriter writer = new JsonWriter(Files.newBufferedWriter(configFile))) { + writer.setIndent(" "); + + gson.toJson(this, Config.class, writer); + } catch (IOException e) { + e.printStackTrace(); + } + } + + @Override + protected void addRenderer(Class type, Function> renderer) { + RenderingRegistry.registerEntityRenderingHandler(type, rm -> renderer.apply(rm)); + } + + static Config of(Path file) { + Config result = null; + + if (Files.exists(file)) { + try (BufferedReader s = Files.newBufferedReader(file)) { + result = gson.fromJson(s, Config.class); + } catch (IOException ignored) { + result = null; + } + } + + if (result == null) { + result = new Config(file); + } + + result.saveConfig(); + + return result; + } +} diff --git a/src/hdskinsfml/java/com/minelittlepony/hdskins/fml/ForgeModHDSkins.java b/src/hdskinsfml/java/com/minelittlepony/hdskins/fml/ForgeModHDSkins.java new file mode 100644 index 00000000..3c6b4c72 --- /dev/null +++ b/src/hdskinsfml/java/com/minelittlepony/hdskins/fml/ForgeModHDSkins.java @@ -0,0 +1,31 @@ +package com.minelittlepony.hdskins.fml; + +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.fml.loading.FMLPaths; + +@Mod("hdskins") +public class ForgeModHDSkins { + + private Config hdskins; + + public ForgeModHDSkins() { + FMLJavaModLoadingContext.get().getModEventBus().addListener(this::commonInit); + FMLJavaModLoadingContext.get().getModEventBus().addListener(this::clientInit); + MinecraftForge.EVENT_BUS.register(this); + } + + private void commonInit(final FMLCommonSetupEvent event) { + + hdskins = Config.of(FMLPaths.CONFIGDIR.get().resolve("hdskins.json")); + + hdskins.init(); + } + + private void clientInit(FMLClientSetupEvent event) { + hdskins.initComplete(); + } +} diff --git a/src/hdskinslitemod/java/com/minelittlepony/hdskins/litemod/LiteModHDSkins.java b/src/hdskinslitemod/java/com/minelittlepony/hdskins/litemod/LiteModHDSkins.java index 3196cc18..38664b73 100644 --- a/src/hdskinslitemod/java/com/minelittlepony/hdskins/litemod/LiteModHDSkins.java +++ b/src/hdskinslitemod/java/com/minelittlepony/hdskins/litemod/LiteModHDSkins.java @@ -27,7 +27,7 @@ import java.io.File; import java.util.function.Function; @ExposableOptions(strategy = ConfigStrategy.Unversioned, filename = "hdskins") -public class LiteModHDSkins extends HDSkins implements InitCompleteListener, ViewportListener, Configurable, AdvancedExposable { +public class LiteModHDSkins extends HDSkins implements InitCompleteListener, AdvancedExposable { @Override public String getName() { @@ -67,29 +67,14 @@ public class LiteModHDSkins extends HDSkins implements InitCompleteListener, Vie return null; } - @Override - public Class getConfigPanelClass() { - return Panel.class; - } - @Override public void onInitCompleted(Minecraft minecraft, LiteLoader loader) { initComplete(); } - @Override - public void onViewportResized(ScaledResolution resolution, int displayWidth, int displayHeight) { - - } - - @Override - public void onFullScreenToggled(boolean fullScreen) { - super.onToggledFullScreen(fullScreen); - } - @Override protected void addRenderer(Class type, Function> renderer) { - ModUtilities.addRenderer(type, renderer.apply(Minecraft.getMinecraft().getRenderManager())); + ModUtilities.addRenderer(type, renderer.apply(Minecraft.getInstance().getRenderManager())); } @Override @@ -97,9 +82,4 @@ public class LiteModHDSkins extends HDSkins implements InitCompleteListener, Vie return LiteLoader.getAssetsDirectory(); } - public static class Panel extends GuiLiteHost { - public Panel() { - super(new HDSkinsConfigPanel()); - } - } }