Hide unsupported render methods in settings gui (fixes #284)
This commit is contained in:
@@ -47,6 +47,21 @@ public class RenderSettings {
|
||||
public boolean hasFixedAspectRatio() {
|
||||
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 {
|
||||
@@ -90,6 +105,18 @@ public class RenderSettings {
|
||||
public String toString() {
|
||||
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
|
||||
|
||||
@@ -75,7 +75,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
|
||||
}
|
||||
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 :
|
||||
@@ -102,7 +102,7 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
|
||||
}
|
||||
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 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;
|
||||
}
|
||||
|
||||
@@ -489,8 +483,13 @@ public class GuiRenderSettings extends GuiScreen implements Closeable {
|
||||
}
|
||||
|
||||
public void load(RenderSettings settings) {
|
||||
renderMethodDropdown.setSelected(settings.getRenderMethod());
|
||||
if (settings.getRenderMethod().isSupported()) {
|
||||
renderMethodDropdown.setSelected(settings.getRenderMethod());
|
||||
}
|
||||
RenderSettings.EncodingPreset encodingPreset = settings.getEncodingPreset();
|
||||
if (!encodingPreset.isSupported()) {
|
||||
encodingPreset = null;
|
||||
}
|
||||
if (encodingPreset == null) {
|
||||
encodingPreset = getDefaultRenderSettings().getEncodingPreset();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user