Hide unsupported render methods in settings gui (fixes #284)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user