diff --git a/src/main/java/com/replaymod/online/ReplayModOnline.java b/src/main/java/com/replaymod/online/ReplayModOnline.java index 1bcdf4fc..365aae19 100644 --- a/src/main/java/com/replaymod/online/ReplayModOnline.java +++ b/src/main/java/com/replaymod/online/ReplayModOnline.java @@ -39,8 +39,6 @@ public class ReplayModOnline { private Logger logger; - private File downloadsFolder = new File("replay_downloads"); - private ApiClient apiClient; /** @@ -64,8 +62,8 @@ public class ReplayModOnline { @Mod.EventHandler public void init(FMLInitializationEvent event) { - if (!downloadsFolder.mkdirs()) { - logger.warn("Failed to create downloads folder: " + downloadsFolder); + if (!getDownloadsFolder().mkdirs()) { + logger.warn("Failed to create downloads folder: " + getDownloadsFolder()); } new GuiHandler(this).register(); @@ -103,11 +101,11 @@ public class ReplayModOnline { } public File getDownloadsFolder() { - return downloadsFolder; + return new File(core.getSettingsRegistry().get(Setting.DOWNLOAD_PATH)); } public File getDownloadedFile(int id) { - return new File(downloadsFolder, id + ".mcpr"); + return new File(getDownloadsFolder(), id + ".mcpr"); } public boolean hasDownloaded(int id) { diff --git a/src/main/java/com/replaymod/online/Setting.java b/src/main/java/com/replaymod/online/Setting.java index a4e7df90..14884bf0 100644 --- a/src/main/java/com/replaymod/online/Setting.java +++ b/src/main/java/com/replaymod/online/Setting.java @@ -4,6 +4,8 @@ import com.replaymod.core.SettingsRegistry; public final class Setting extends SettingsRegistry.SettingKeys { public static final Setting SKIP_LOGIN_PROMPT = make("skipLoginPrompt", null, false); + public static final SettingsRegistry.SettingKey DOWNLOAD_PATH = + new SettingsRegistry.SettingKeys<>("advanced", "downloadPath", null, "./replay_downloads/"); private static Setting make(String key, String displayName, T defaultValue) { return new Setting<>(key, displayName, defaultValue); diff --git a/src/main/java/com/replaymod/render/ReplayModRender.java b/src/main/java/com/replaymod/render/ReplayModRender.java index bc72af0b..ade88210 100644 --- a/src/main/java/com/replaymod/render/ReplayModRender.java +++ b/src/main/java/com/replaymod/render/ReplayModRender.java @@ -20,10 +20,16 @@ public class ReplayModRender { private Configuration configuration; + public ReplayMod getCore() { + return core; + } + @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { logger = event.getModLog(); configuration = new Configuration(event.getSuggestedConfigurationFile()); + + core.getSettingsRegistry().register(Setting.class); } public Configuration getConfiguration() { diff --git a/src/main/java/com/replaymod/render/Setting.java b/src/main/java/com/replaymod/render/Setting.java new file mode 100644 index 00000000..df4e121b --- /dev/null +++ b/src/main/java/com/replaymod/render/Setting.java @@ -0,0 +1,8 @@ +package com.replaymod.render; + +import com.replaymod.core.SettingsRegistry; + +public final class Setting { + public static final SettingsRegistry.SettingKey RENDER_PATH = + new SettingsRegistry.SettingKeys<>("advanced", "renderPath", null, "./replay_videos/"); +} diff --git a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java index f435acf5..3df011a2 100644 --- a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java +++ b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java @@ -7,6 +7,7 @@ import com.google.gson.GsonBuilder; import com.google.gson.InstanceCreator; import com.replaymod.render.RenderSettings; import com.replaymod.render.ReplayModRender; +import com.replaymod.render.Setting; import com.replaymod.render.rendering.VideoRenderer; import com.replaymod.replay.ReplayHandler; import com.replaymod.replaystudio.pathing.path.Timeline; @@ -390,7 +391,8 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { private File generateOutputFile(RenderSettings.EncodingPreset encodingPreset) { String fileName = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(new Date()); - return new File("replay_videos/" + fileName + "." + encodingPreset.getFileExtension()); + File folder = new File(ReplayModRender.instance.getCore().getSettingsRegistry().get(Setting.RENDER_PATH)); + return new File(folder, fileName + "." + encodingPreset.getFileExtension()); } private RenderSettings getDefaultRenderSettings() {