package dmillerw.menu.gui; import net.minecraft.client.Minecraft; import net.minecraft.util.math.MathHelper; /** * @author dmillerw */ public class CompatibleScaledResolution { private int scaledWidth; private int scaledHeight; private int scaleFactor; private final double scaledWidthD; private final double scaledHeightD; public CompatibleScaledResolution(Minecraft minecraft, int width, int height) { this.scaledWidth = width; this.scaledHeight = height; this.scaleFactor = 1; boolean flag = minecraft.getLanguageManager().isCurrentLocaleUnicode() || minecraft.gameSettings.forceUnicodeFont; int k = minecraft.gameSettings.guiScale; if (k == 0) { k = 1000; } while (this.scaleFactor < k && this.scaledWidth / (this.scaleFactor + 1) >= 320 && this.scaledHeight / (this.scaleFactor + 1) >= 240) { ++this.scaleFactor; } if (flag && this.scaleFactor % 2 != 0 && this.scaleFactor != 1) { --this.scaleFactor; } this.scaledWidthD = (double) this.scaledWidth / (double) this.scaleFactor; this.scaledHeightD = (double) this.scaledHeight / (double) this.scaleFactor; this.scaledWidth = MathHelper.ceil(this.scaledWidthD); this.scaledHeight = MathHelper.ceil(this.scaledHeightD); } public int getScaledWidth() { return this.scaledWidth; } public int getScaledHeight() { return this.scaledHeight; } public double getScaledWidth_double() { return this.scaledWidthD; } public double getScaledHeight_double() { return this.scaledHeightD; } public int getScaleFactor() { return this.scaleFactor; } }