aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorDeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com>2022-08-18 13:31:23 +0200
committerGitHub <noreply@github.com>2022-08-18 12:31:23 +0100
commitf6ca23fcc1d13389ab9460c843a0f2126eb84443 (patch)
tree776a27cc56f2d603bc76b8e08392ebf4d38427b8 /src/main/java
parent97f788ecd4be15b1556ee1f3d8bd057bdf06bf5f (diff)
downloadOneConfig-f6ca23fcc1d13389ab9460c843a0f2126eb84443.tar.gz
OneConfig-f6ca23fcc1d13389ab9460c843a0f2126eb84443.tar.bz2
OneConfig-f6ca23fcc1d13389ab9460c843a0f2126eb84443.zip
Blur (#94)
* blurring * api * update optifine hook
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java218
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java3
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/utils/gui/OneUIScreen.java7
3 files changed, 118 insertions, 110 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java b/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java
index c0c4c96..9017230 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java
@@ -47,15 +47,15 @@ import cc.polyfrost.oneconfig.renderer.scissor.ScissorManager;
import cc.polyfrost.oneconfig.utils.InputHandler;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
import cc.polyfrost.oneconfig.utils.gui.GuiUtils;
+import cc.polyfrost.oneconfig.utils.gui.OneUIScreen;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.lwjgl.nanovg.NanoVG;
import java.util.ArrayList;
-public class OneConfigGui extends UScreen implements GuiPause {
+public class OneConfigGui extends OneUIScreen {
public static OneConfigGui INSTANCE;
- private InputHandler inputHandler = new InputHandler();
private final SideBar sideBar = new SideBar();
private final TextInputField textInputField = new TextInputField(248, 40, "Search...", false, false, SVGs.MAGNIFYING_GLASS_BOLD);
private final ArrayList<Page> previousPages = new ArrayList<>();
@@ -63,7 +63,6 @@ public class OneConfigGui extends UScreen implements GuiPause {
private final BasicElement backArrow = new BasicElement(40, 40, new ColorPalette(Colors.GRAY_700, Colors.GRAY_500, Colors.GRAY_500_80), true);
private final BasicElement forwardArrow = new BasicElement(40, 40, new ColorPalette(Colors.GRAY_700, Colors.GRAY_500, Colors.GRAY_500_80), true);
public ColorSelector currentColorSelector;
- public boolean mouseDown;
public boolean allowClose = true;
protected Page currentPage;
protected Page prevPage;
@@ -84,125 +83,121 @@ public class OneConfigGui extends UScreen implements GuiPause {
}
@Override
- public void onDrawScreen(@NotNull UMatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) {
- super.onDrawScreen(matrixStack, mouseX, mouseY, partialTicks);
+ public void draw(long vg, float partialTicks, InputHandler inputHandler) {
long start = System.nanoTime();
- RenderManager.setupAndDraw((vg) -> {
- if (currentPage == null) {
- currentPage = new ModsPage();
- currentPage.parents.add(currentPage);
- }
- if (OneConfigConfig.australia) {
- NanoVG.nvgTranslate(vg, UResolution.getWindowWidth(), UResolution.getWindowHeight());
- NanoVG.nvgRotate(vg, (float) Math.toRadians(180));
- }
- scale = Preferences.enableCustomScale ? Preferences.customScale : Math.min(UResolution.getWindowWidth() / 1920f, UResolution.getWindowHeight() / 1080f);
- if (scale < 1 && !Preferences.enableCustomScale)
- scale = Math.min(Math.min(1f, UResolution.getWindowWidth() / 1280f), Math.min(1f, UResolution.getWindowHeight() / 800f));
- scale = (float) (Math.floor(scale / 0.05f) * 0.05f);
- int x = (int) ((UResolution.getWindowWidth() - 1280 * scale) / 2f / scale);
- int y = (int) ((UResolution.getWindowHeight() - 800 * scale) / 2f / scale);
- RenderManager.scale(vg, scale, scale);
- inputHandler.scale(scale, scale);
+ if (currentPage == null) {
+ currentPage = new ModsPage();
+ currentPage.parents.add(currentPage);
+ }
+ if (OneConfigConfig.australia) {
+ NanoVG.nvgTranslate(vg, UResolution.getWindowWidth(), UResolution.getWindowHeight());
+ NanoVG.nvgRotate(vg, (float) Math.toRadians(180));
+ }
+ scale = Preferences.enableCustomScale ? Preferences.customScale : Math.min(UResolution.getWindowWidth() / 1920f, UResolution.getWindowHeight() / 1080f);
+ if (scale < 1 && !Preferences.enableCustomScale)
+ scale = Math.min(Math.min(1f, UResolution.getWindowWidth() / 1280f), Math.min(1f, UResolution.getWindowHeight() / 800f));
+ scale = (float) (Math.floor(scale / 0.05f) * 0.05f);
+ int x = (int) ((UResolution.getWindowWidth() - 1280 * scale) / 2f / scale);
+ int y = (int) ((UResolution.getWindowHeight() - 800 * scale) / 2f / scale);
+ RenderManager.scale(vg, scale, scale);
+ inputHandler.scale(scale, scale);
- RenderManager.drawDropShadow(vg, x, y, 1280, 800, 32, 0, 20);
- RenderManager.drawRoundedRect(vg, x + 224, y, 1056, 800, Colors.GRAY_800, 20f);
- RenderManager.drawRoundedRect(vg, x, y, 244, 800, Colors.GRAY_800_95, 20f);
- RenderManager.drawRect(vg, x + 224, y, 20, 800, Colors.GRAY_800);
- RenderManager.drawHollowRoundRect(vg, x - 1, y - 1, 1282, 802, 0x4DCCCCCC, 20, scale < 1 ? 1 / scale : 1);
+ RenderManager.drawDropShadow(vg, x, y, 1280, 800, 32, 0, 20);
+ RenderManager.drawRoundedRect(vg, x + 224, y, 1056, 800, Colors.GRAY_800, 20f);
+ RenderManager.drawRoundedRect(vg, x, y, 244, 800, Colors.GRAY_800_95, 20f);
+ RenderManager.drawRect(vg, x + 224, y, 20, 800, Colors.GRAY_800);
+ RenderManager.drawHollowRoundRect(vg, x - 1, y - 1, 1282, 802, 0x4DCCCCCC, 20, scale < 1 ? 1 / scale : 1);
- RenderManager.drawLine(vg, x + 224, y + 72, x + 1280, y + 72, 1, Colors.GRAY_700);
- RenderManager.drawLine(vg, x + 224, y, x + 222, y + 800, 1, Colors.GRAY_700);
+ RenderManager.drawLine(vg, x + 224, y + 72, x + 1280, y + 72, 1, Colors.GRAY_700);
+ RenderManager.drawLine(vg, x + 224, y, x + 222, y + 800, 1, Colors.GRAY_700);
- RenderManager.drawSvg(vg, SVGs.ONECONFIG, x + 19, y + 19, 42, 42);
- RenderManager.drawText(vg, "OneConfig", x + 69, y + 32, -1, 18f, Fonts.BOLD); // added half line height to center text
- RenderManager.drawText(vg, "By Polyfrost", x + 69, y + 51, -1, 12f, Fonts.REGULAR);
+ RenderManager.drawSvg(vg, SVGs.ONECONFIG, x + 19, y + 19, 42, 42);
+ RenderManager.drawText(vg, "OneConfig", x + 69, y + 32, -1, 18f, Fonts.BOLD); // added half line height to center text
+ RenderManager.drawText(vg, "By Polyfrost", x + 69, y + 51, -1, 12f, Fonts.REGULAR);
- textInputField.draw(vg, x + 1020, y + 16, inputHandler);
- sideBar.draw(vg, x, y, inputHandler);
- backArrow.draw(vg, x + 240, y + 16, inputHandler);
- forwardArrow.draw(vg, x + 288, y + 16, inputHandler);
+ textInputField.draw(vg, x + 1020, y + 16, inputHandler);
+ sideBar.draw(vg, x, y, inputHandler);
+ backArrow.draw(vg, x + 240, y + 16, inputHandler);
+ forwardArrow.draw(vg, x + 288, y + 16, inputHandler);
- if (previousPages.size() == 0) {
- backArrow.disable(true);
- RenderManager.setAlpha(vg, 0.5f);
- } else {
- backArrow.disable(false);
- if (!backArrow.isHovered() || Platform.getMousePlatform().isButtonDown(0))
- RenderManager.setAlpha(vg, 0.8f);
- }
- RenderManager.drawSvg(vg, SVGs.CARET_LEFT, x + 246, y + 22, 28, 28);
- RenderManager.setAlpha(vg, 1f);
- if (nextPages.size() == 0) {
- forwardArrow.disable(true);
- RenderManager.setAlpha(vg, 0.5f);
- } else {
- forwardArrow.disable(false);
- if (!forwardArrow.isHovered() || Platform.getMousePlatform().isButtonDown(0))
- RenderManager.setAlpha(vg, 0.8f);
- }
- RenderManager.drawSvg(vg, SVGs.CARET_RIGHT, x + 294, y + 22, 28, 28);
- RenderManager.setAlpha(vg, 1f);
+ if (previousPages.size() == 0) {
+ backArrow.disable(true);
+ RenderManager.setAlpha(vg, 0.5f);
+ } else {
+ backArrow.disable(false);
+ if (!backArrow.isHovered() || Platform.getMousePlatform().isButtonDown(0))
+ RenderManager.setAlpha(vg, 0.8f);
+ }
+ RenderManager.drawSvg(vg, SVGs.CARET_LEFT, x + 246, y + 22, 28, 28);
+ RenderManager.setAlpha(vg, 1f);
+ if (nextPages.size() == 0) {
+ forwardArrow.disable(true);
+ RenderManager.setAlpha(vg, 0.5f);
+ } else {
+ forwardArrow.disable(false);
+ if (!forwardArrow.isHovered() || Platform.getMousePlatform().isButtonDown(0))
+ RenderManager.setAlpha(vg, 0.8f);
+ }
+ RenderManager.drawSvg(vg, SVGs.CARET_RIGHT, x + 294, y + 22, 28, 28);
+ RenderManager.setAlpha(vg, 1f);
- if (backArrow.isClicked() && previousPages.size() > 0) {
- try {
- nextPages.add(0, currentPage);
- openPage(previousPages.get(0), false);
- previousPages.remove(0);
- } catch (Exception ignored) {
- }
- } else if (forwardArrow.isClicked() && nextPages.size() > 0) {
- try {
- previousPages.add(0, currentPage);
- openPage(nextPages.get(0), new EaseInOutQuad(300, 224, 2128, true), false);
- nextPages.remove(0);
- } catch (Exception ignored) {
- }
+ if (backArrow.isClicked() && previousPages.size() > 0) {
+ try {
+ nextPages.add(0, currentPage);
+ openPage(previousPages.get(0), false);
+ previousPages.remove(0);
+ } catch (Exception ignored) {
+ }
+ } else if (forwardArrow.isClicked() && nextPages.size() > 0) {
+ try {
+ previousPages.add(0, currentPage);
+ openPage(nextPages.get(0), new EaseInOutQuad(300, 224, 2128, true), false);
+ nextPages.remove(0);
+ } catch (Exception ignored) {
}
+ }
- ScissorManager.scissor(vg, x + 224, y + 72, 1056, 728);
- Scissor blockedClicks = inputHandler.blockInputArea(x + 224, y, 1056, 72);
- if (prevPage != null && animation != null) {
- float pageProgress = animation.get(GuiUtils.getDeltaTime());
- if (!animation.isReversed()) {
- prevPage.scrollWithDraw(vg, (int) (x + pageProgress), y + 72, inputHandler);
- currentPage.scrollWithDraw(vg, (int) (x - 1904 + pageProgress), y + 72, inputHandler);
- } else {
- prevPage.scrollWithDraw(vg, (int) (x - 1904 + pageProgress), y + 72, inputHandler);
- currentPage.scrollWithDraw(vg, (int) (x + pageProgress), y + 72, inputHandler);
- }
- if (animation.isFinished()) {
- prevPage = null;
- }
+ ScissorManager.scissor(vg, x + 224, y + 72, 1056, 728);
+ Scissor blockedClicks = inputHandler.blockInputArea(x + 224, y, 1056, 72);
+ if (prevPage != null && animation != null) {
+ float pageProgress = animation.get(GuiUtils.getDeltaTime());
+ if (!animation.isReversed()) {
+ prevPage.scrollWithDraw(vg, (int) (x + pageProgress), y + 72, inputHandler);
+ currentPage.scrollWithDraw(vg, (int) (x - 1904 + pageProgress), y + 72, inputHandler);
} else {
- currentPage.scrollWithDraw(vg, x + 224, y + 72, inputHandler);
+ prevPage.scrollWithDraw(vg, (int) (x - 1904 + pageProgress), y + 72, inputHandler);
+ currentPage.scrollWithDraw(vg, (int) (x + pageProgress), y + 72, inputHandler);
}
- ScissorManager.clearScissors(vg);
- inputHandler.stopBlock(blockedClicks);
-
- float breadcrumbX = x + 352;
- for (int i = 0; i < currentPage.parents.size(); i++) {
- String title = currentPage.parents.get(i).getTitle();
- float width = RenderManager.getTextWidth(vg, title, 24f, Fonts.SEMIBOLD);
- boolean hovered = inputHandler.isAreaHovered((int) breadcrumbX, y + 24, (int) width, 36);
- int color = Colors.WHITE_60;
- if (i == currentPage.parents.size() - 1) color = Colors.WHITE;
- else if (hovered && !Platform.getMousePlatform().isButtonDown(0)) color = Colors.WHITE_80;
- RenderManager.drawText(vg, title, breadcrumbX, y + 38, color, 24f, Fonts.SEMIBOLD);
- if (i != 0)
- RenderManager.drawSvg(vg, SVGs.CARET_RIGHT, breadcrumbX - 28, y + 25, 24, 24, color);
- if (hovered && inputHandler.isClicked()) openPage(currentPage.parents.get(i));
- breadcrumbX += width + 32;
+ if (animation.isFinished()) {
+ prevPage = null;
}
+ } else {
+ currentPage.scrollWithDraw(vg, x + 224, y + 72, inputHandler);
+ }
+ ScissorManager.clearScissors(vg);
+ inputHandler.stopBlock(blockedClicks);
- long end = System.nanoTime() - start;
- String s = (" draw: " + end / 1000000f + "ms");
- RenderManager.drawText(vg, s, x + 1170, y + 792, Colors.GRAY_300, 10f, Fonts.MEDIUM);
- if (currentColorSelector != null) {
- currentColorSelector.draw(vg);
- }
- });
- mouseDown = Platform.getMousePlatform().isButtonDown(0);
+ float breadcrumbX = x + 352;
+ for (int i = 0; i < currentPage.parents.size(); i++) {
+ String title = currentPage.parents.get(i).getTitle();
+ float width = RenderManager.getTextWidth(vg, title, 24f, Fonts.SEMIBOLD);
+ boolean hovered = inputHandler.isAreaHovered((int) breadcrumbX, y + 24, (int) width, 36);
+ int color = Colors.WHITE_60;
+ if (i == currentPage.parents.size() - 1) color = Colors.WHITE;
+ else if (hovered && !Platform.getMousePlatform().isButtonDown(0)) color = Colors.WHITE_80;
+ RenderManager.drawText(vg, title, breadcrumbX, y + 38, color, 24f, Fonts.SEMIBOLD);
+ if (i != 0)
+ RenderManager.drawSvg(vg, SVGs.CARET_RIGHT, breadcrumbX - 28, y + 25, 24, 24, color);
+ if (hovered && inputHandler.isClicked()) openPage(currentPage.parents.get(i));
+ breadcrumbX += width + 32;
+ }
+
+ long end = System.nanoTime() - start;
+ String s = (" draw: " + end / 1000000f + "ms");
+ RenderManager.drawText(vg, s, x + 1170, y + 792, Colors.GRAY_300, 10f, Fonts.MEDIUM);
+ if (currentColorSelector != null) {
+ currentColorSelector.draw(vg);
+ }
}
@Override
@@ -303,4 +298,9 @@ public class OneConfigGui extends UScreen implements GuiPause {
public boolean doesGuiPauseGame() {
return false;
}
+
+ @Override
+ public boolean hasBackgroundBlur() {
+ return Preferences.enableBlur;
+ }
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
index 0fa5514..d93445b 100644
--- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
+++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java
@@ -47,6 +47,7 @@ import cc.polyfrost.oneconfig.utils.IOUtils;
import cc.polyfrost.oneconfig.utils.InputHandler;
import cc.polyfrost.oneconfig.utils.NetworkUtils;
import cc.polyfrost.oneconfig.utils.color.ColorPalette;
+import cc.polyfrost.oneconfig.utils.gui.GuiUtils;
import java.awt.*;
import java.util.ArrayList;
@@ -358,7 +359,7 @@ public class ColorSelector {
color.setChromaSpeed((int) speedInput.getCurrentValue());
}
setXYFromColor();
- } else if (OneConfigGui.INSTANCE.mouseDown) {
+ } else if (GuiUtils.wasMouseDown()) {
saturationInput.setInput(String.format("%.01f", (float) color.getSaturation()));
brightnessInput.setInput(String.format("%.01f", (float) color.getBrightness()));
if (!alphaInput.arrowsClicked()) {
diff --git a/src/main/java/cc/polyfrost/oneconfig/utils/gui/OneUIScreen.java b/src/main/java/cc/polyfrost/oneconfig/utils/gui/OneUIScreen.java
index 45242b2..2eb3349 100644
--- a/src/main/java/cc/polyfrost/oneconfig/utils/gui/OneUIScreen.java
+++ b/src/main/java/cc/polyfrost/oneconfig/utils/gui/OneUIScreen.java
@@ -91,6 +91,13 @@ public abstract class OneUIScreen extends UScreen implements GuiPause {
*/
public abstract void draw(long vg, float partialTicks, InputHandler inputHandler);
+ /**
+ * @return If this gui has background blur
+ */
+ public boolean hasBackgroundBlur() {
+ return false;
+ }
+
@Override
public boolean doesGuiPauseGame() {
return false;