From 6503a53e22bbc7ade145dbadb117ce7e2378fa1d Mon Sep 17 00:00:00 2001 From: Juuxel <6596629+Juuxel@users.noreply.github.com> Date: Tue, 2 Feb 2021 18:55:17 +0200 Subject: Add button dark mode --- CREDITS.txt | 1 + build.gradle | 2 +- .../io/github/cottonmc/cotton/gui/widget/WButton.java | 16 +++++++++++++--- .../cottonmc/cotton/gui/widget/WLabeledSlider.java | 6 ++++-- .../assets/libgui/textures/widget/dark_widgets.png | Bin 0 -> 5798 bytes 5 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 CREDITS.txt create mode 100644 src/main/resources/assets/libgui/textures/widget/dark_widgets.png diff --git a/CREDITS.txt b/CREDITS.txt new file mode 100644 index 0000000..2f37fc1 --- /dev/null +++ b/CREDITS.txt @@ -0,0 +1 @@ +- Dark-mode button textures (dark_widgets.png) are from Roughly Enough Items by shedaniel, licensed under MIT diff --git a/build.gradle b/build.gradle index 9c4aa77..c3da0ef 100644 --- a/build.gradle +++ b/build.gradle @@ -71,7 +71,7 @@ task sourcesJar(type: Jar, dependsOn: classes) { } jar { - from "LICENSE" + from "CREDITS.txt", "LICENSE" } checkstyle { diff --git a/src/main/java/io/github/cottonmc/cotton/gui/widget/WButton.java b/src/main/java/io/github/cottonmc/cotton/gui/widget/WButton.java index a8db003..dd2039a 100644 --- a/src/main/java/io/github/cottonmc/cotton/gui/widget/WButton.java +++ b/src/main/java/io/github/cottonmc/cotton/gui/widget/WButton.java @@ -8,7 +8,9 @@ import net.minecraft.client.sound.PositionedSoundInstance; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import io.github.cottonmc.cotton.gui.client.LibGui; import io.github.cottonmc.cotton.gui.client.ScreenDrawing; import io.github.cottonmc.cotton.gui.widget.data.HorizontalAlignment; import io.github.cottonmc.cotton.gui.widget.data.InputResult; @@ -16,6 +18,8 @@ import io.github.cottonmc.cotton.gui.widget.icon.Icon; import org.jetbrains.annotations.Nullable; public class WButton extends WWidget { + private static final Identifier DARK_WIDGETS_LOCATION = new Identifier("libgui", "textures/widget/dark_widgets.png"); + private Text label; protected int color = WLabel.DEFAULT_TEXT_COLOR; protected int darkmodeColor = WLabel.DEFAULT_TEXT_COLOR; @@ -93,9 +97,10 @@ public class WButton extends WWidget { float buttonHeight = 20*px; float buttonEndLeft = (200-(getWidth()/2)) * px; - - ScreenDrawing.texturedRect(matrices, x, y, getWidth()/2, 20, AbstractButtonWidget.WIDGETS_LOCATION, buttonLeft, buttonTop, buttonLeft+buttonWidth, buttonTop+buttonHeight, 0xFFFFFFFF); - ScreenDrawing.texturedRect(matrices, x+(getWidth()/2), y, getWidth()/2, 20, AbstractButtonWidget.WIDGETS_LOCATION, buttonEndLeft, buttonTop, 200*px, buttonTop+buttonHeight, 0xFFFFFFFF); + + Identifier texture = getTexture(); + ScreenDrawing.texturedRect(matrices, x, y, getWidth()/2, 20, texture, buttonLeft, buttonTop, buttonLeft+buttonWidth, buttonTop+buttonHeight, 0xFFFFFFFF); + ScreenDrawing.texturedRect(matrices, x+(getWidth()/2), y, getWidth()/2, 20, texture, buttonEndLeft, buttonTop, 200*px, buttonTop+buttonHeight, 0xFFFFFFFF); if (icon != null) { icon.paint(matrices, x + 1, y + 1, 16); @@ -211,4 +216,9 @@ public class WButton extends WWidget { this.icon = icon; return this; } + + @Environment(EnvType.CLIENT) + static Identifier getTexture() { + return LibGui.isDarkMode() ? DARK_WIDGETS_LOCATION : AbstractButtonWidget.WIDGETS_LOCATION; + } } diff --git a/src/main/java/io/github/cottonmc/cotton/gui/widget/WLabeledSlider.java b/src/main/java/io/github/cottonmc/cotton/gui/widget/WLabeledSlider.java index 57cc8e6..4a89fa5 100644 --- a/src/main/java/io/github/cottonmc/cotton/gui/widget/WLabeledSlider.java +++ b/src/main/java/io/github/cottonmc/cotton/gui/widget/WLabeledSlider.java @@ -5,6 +5,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; +import net.minecraft.util.Identifier; import net.minecraft.util.math.Vec3f; import io.github.cottonmc.cotton.gui.client.ScreenDrawing; @@ -207,8 +208,9 @@ public class WLabeledSlider extends WAbstractSlider { float buttonHeight = 20 * px; float buttonEndLeft = (200 - halfWidth) * px; - ScreenDrawing.texturedRect(matrices, x, y, halfWidth, 20, AbstractButtonWidget.WIDGETS_LOCATION, buttonLeft, buttonTop, buttonLeft + buttonWidth, buttonTop + buttonHeight, 0xFFFFFFFF); - ScreenDrawing.texturedRect(matrices, x + halfWidth, y, halfWidth, 20, AbstractButtonWidget.WIDGETS_LOCATION, buttonEndLeft, buttonTop, 200 * px, buttonTop + buttonHeight, 0xFFFFFFFF); + Identifier texture = WButton.getTexture(); + ScreenDrawing.texturedRect(matrices, x, y, halfWidth, 20, texture, buttonLeft, buttonTop, buttonLeft + buttonWidth, buttonTop + buttonHeight, 0xFFFFFFFF); + ScreenDrawing.texturedRect(matrices, x + halfWidth, y, halfWidth, 20, texture, buttonEndLeft, buttonTop, 200 * px, buttonTop + buttonHeight, 0xFFFFFFFF); } /** diff --git a/src/main/resources/assets/libgui/textures/widget/dark_widgets.png b/src/main/resources/assets/libgui/textures/widget/dark_widgets.png new file mode 100644 index 0000000..8482d76 Binary files /dev/null and b/src/main/resources/assets/libgui/textures/widget/dark_widgets.png differ -- cgit