diff --git a/src/main/java/com/replaymod/render/RenderSettings.java b/src/main/java/com/replaymod/render/RenderSettings.java index 59e2b336..5ff3f058 100644 --- a/src/main/java/com/replaymod/render/RenderSettings.java +++ b/src/main/java/com/replaymod/render/RenderSettings.java @@ -82,10 +82,10 @@ public class RenderSettings { } public boolean hasBitrateSetting() { - return preset.contains("%BITRATE%"); + return preset != null && preset.contains("%BITRATE%"); } - public boolean isYuv420() { return preset.contains("-pix_fmt yuv420p"); } + public boolean isYuv420() { return preset != null && preset.contains("-pix_fmt yuv420p"); } @Override public String toString() { diff --git a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java index 2aadeedd..15d23d9c 100644 --- a/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java +++ b/src/main/java/com/replaymod/render/gui/GuiRenderSettings.java @@ -59,6 +59,14 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { new GuiDropdownMenu().onSelection(new Consumer() { @Override public void consume(Integer old) { + if (renderMethodDropdown.getSelectedValue() == RenderSettings.RenderMethod.BLEND + ^ encodingPresetDropdown.getSelectedValue() == RenderSettings.EncodingPreset.BLEND) { + if (renderMethodDropdown.getSelectedValue() == RenderSettings.RenderMethod.BLEND) { + encodingPresetDropdown.setSelected(RenderSettings.EncodingPreset.BLEND); + } else { + encodingPresetDropdown.setSelected(RenderSettings.EncodingPreset.MP4_DEFAULT); + } + } updateInputs(); } }).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.RenderMethod.values()); @@ -75,6 +83,10 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { @Override public void consume(Integer old) { RenderSettings.EncodingPreset newPreset = encodingPresetDropdown.getSelectedValue(); + if (newPreset == RenderSettings.EncodingPreset.BLEND + && encodingPresetDropdown.getSelectedValue() == RenderSettings.EncodingPreset.BLEND) { + renderMethodDropdown.setSelected(RenderSettings.RenderMethod.BLEND); + } // Update export arguments to match new Preset exportArguments.setText(newPreset.getValue()); // If the user hasn't changed the output file by themselves, @@ -361,6 +373,17 @@ public class GuiRenderSettings extends GuiScreen implements Closeable { injectSphericalMetadata.setDisabled().setTooltip(new GuiTooltip().setColor(Colors.RED) .setI18nText("replaymod.gui.rendersettings.sphericalmetadata.error")); } + + // Enable/Disable various options for blend export + boolean isBlend = renderMethod == RenderSettings.RenderMethod.BLEND; + if (isBlend) { + videoWidth.setDisabled(); + videoHeight.setDisabled(); + } + encodingPresetDropdown.setEnabled(!isBlend); + exportCommand.setEnabled(!isBlend); + exportArguments.setEnabled(!isBlend); + antiAliasingDropdown.setEnabled(!isBlend); } protected String updateResolution() { diff --git a/src/main/resources/assets/replaymod/lang b/src/main/resources/assets/replaymod/lang index 37de62cf..874fd801 160000 --- a/src/main/resources/assets/replaymod/lang +++ b/src/main/resources/assets/replaymod/lang @@ -1 +1 @@ -Subproject commit 37de62cf8edae480b2a78cb6f5ed307aec351a69 +Subproject commit 874fd8016db8209e6a4e8822c435c9641bcc18f6