Hide unsupported render methods in settings gui (fixes #284)

This commit is contained in:
Jonas Herzig
2020-07-25 16:24:33 +02:00
parent 34a7465b8e
commit fc1ae0e109
2 changed files with 35 additions and 9 deletions

View File

@@ -47,6 +47,21 @@ public class RenderSettings {
public boolean hasFixedAspectRatio() { public boolean hasFixedAspectRatio() {
return this == EQUIRECTANGULAR || this == ODS || this == CUBIC; return this == EQUIRECTANGULAR || this == ODS || this == CUBIC;
} }
@SuppressWarnings("RedundantIfStatement")
public boolean isSupported() {
//#if MC<10800 || MC>=11500
if (this == BLEND) {
return false;
}
//#endif
return true;
}
public static RenderMethod[] getSupported() {
return Arrays.stream(values()).filter(RenderMethod::isSupported).toArray(RenderMethod[]::new);
}
} }
public enum EncodingPreset { public enum EncodingPreset {
@@ -90,6 +105,18 @@ public class RenderSettings {
public String toString() { public String toString() {
return I18n.translate("replaymod.gui.rendersettings.presets." + name().replace('_', '.').toLowerCase()); return I18n.translate("replaymod.gui.rendersettings.presets." + name().replace('_', '.').toLowerCase());
} }
public boolean isSupported() {
if (this == BLEND) {
return RenderMethod.BLEND.isSupported();
} else {
return true;
}
}
public static EncodingPreset[] getSupported() {
return Arrays.stream(values()).filter(EncodingPreset::isSupported).toArray(EncodingPreset[]::new);
}
} }
@AllArgsConstructor @AllArgsConstructor

View File

@@ -75,7 +75,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
} }
updateInputs(); updateInputs();
} }
}).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.RenderMethod.values()); }).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.RenderMethod.getSupported());
{ {
for (Map.Entry<RenderSettings.RenderMethod, IGuiClickable> entry : for (Map.Entry<RenderSettings.RenderMethod, IGuiClickable> entry :
@@ -102,7 +102,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
} }
updateInputs(); updateInputs();
} }
}).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.EncodingPreset.values()); }).setMinSize(new Dimension(0, 20)).setValues(RenderSettings.EncodingPreset.getSupported());
public final GuiNumberField videoWidth = new GuiNumberField().setSize(50, 20).setMinValue(1).setValidateOnFocusChange(true); public final GuiNumberField videoWidth = new GuiNumberField().setSize(50, 20).setMinValue(1).setValidateOnFocusChange(true);
public final GuiNumberField videoHeight = new GuiNumberField().setSize(50, 20).setMinValue(1).setValidateOnFocusChange(true); public final GuiNumberField videoHeight = new GuiNumberField().setSize(50, 20).setMinValue(1).setValidateOnFocusChange(true);
@@ -450,12 +450,6 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
} }
} }
//#if MC<10800 || MC>=11500
if (method == RenderSettings.RenderMethod.BLEND) {
return "replaymod.gui.rendersettings.no_blend_on_1_7_10";
}
//#endif
return null; return null;
} }
@@ -489,8 +483,13 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
} }
public void load(RenderSettings settings) { public void load(RenderSettings settings) {
renderMethodDropdown.setSelected(settings.getRenderMethod()); if (settings.getRenderMethod().isSupported()) {
renderMethodDropdown.setSelected(settings.getRenderMethod());
}
RenderSettings.EncodingPreset encodingPreset = settings.getEncodingPreset(); RenderSettings.EncodingPreset encodingPreset = settings.getEncodingPreset();
if (!encodingPreset.isSupported()) {
encodingPreset = null;
}
if (encodingPreset == null) { if (encodingPreset == null) {
encodingPreset = getDefaultRenderSettings().getEncodingPreset(); encodingPreset = getDefaultRenderSettings().getEncodingPreset();
} }