diff --git a/src/main/java/org/saturnclient/ui/Textures.java b/src/main/java/org/saturnclient/ui/Textures.java index 8404023..360679e 100644 --- a/src/main/java/org/saturnclient/ui/Textures.java +++ b/src/main/java/org/saturnclient/ui/Textures.java @@ -8,8 +8,10 @@ public class Textures { public static final Identifier SEARCH = Identifier.of("saturnclient", "textures/gui/components/search.png"); public static final Identifier CLOSE = Identifier.of("saturnclient", "textures/gui/components/close.png"); public static final Identifier MODS_TAB = Identifier.of("saturnclient", "textures/gui/components/mods_tab.png"); - public static final Identifier SETTINGS = Identifier.of("saturnclient", - "textures/gui/components/settings.png"); + public static final Identifier SETTINGS = Identifier.of("saturnclient", "textures/gui/components/settings.png"); + public static final Identifier TOGGLE_INDICATOR = Identifier.of("saturnclient", "textures/gui/components/toggle_indicator.png"); + public static final Identifier TOGGLE_BG = Identifier.of("saturnclient", "textures/gui/components/toggle_bg.png"); + public static final Identifier LOGO = Identifier.of("saturnclient", "textures/logo/logo.png"); public static final Identifier LOGO_TEXT = Identifier.of("saturnclient", "textures/logo/text.png"); diff --git a/src/main/java/org/saturnclient/ui/components/SaturnToggle.java b/src/main/java/org/saturnclient/ui/components/SaturnToggle.java new file mode 100644 index 0000000..196e3b8 --- /dev/null +++ b/src/main/java/org/saturnclient/ui/components/SaturnToggle.java @@ -0,0 +1,39 @@ +package org.saturnclient.ui.components; + +import org.saturnclient.saturnclient.SaturnClient; +import org.saturnclient.saturnclient.config.Property; +import org.saturnclient.ui.SaturnWidget; +import org.saturnclient.ui.Textures; + +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.util.math.ColorHelper; + +public class SaturnToggle extends SaturnWidget { + Property prop; + + public SaturnToggle(Property prop) { + this.prop = prop; + width = 16; + height = 8; + } + + @Override + public void render(DrawContext context, boolean hovering, int mouseX, int mouseY) { + int color = prop.value ? SaturnClient.COLOR : ColorHelper.getWhite(alpha); + int w = 16; + int h = 6; + int s = 8; + + context.drawTexture(RenderLayer::getGuiTextured, Textures.TOGGLE_BG, x, + y + 1, 0, 0, w, h, w, h, color); + + context.drawTexture(RenderLayer::getGuiTextured, Textures.TOGGLE_INDICATOR, prop.value ? x + 8 : x, + y, 0, 0, s, s, s, s, color); + } + + @Override + public void click(int mouseX, int mouseY) { + prop.value = !prop.value; + } +} diff --git a/src/main/resources/assets/saturnclient/textures/gui/components/toggle_bg.png b/src/main/resources/assets/saturnclient/textures/gui/components/toggle_bg.png new file mode 100644 index 0000000..34150fb Binary files /dev/null and b/src/main/resources/assets/saturnclient/textures/gui/components/toggle_bg.png differ diff --git a/src/main/resources/assets/saturnclient/textures/gui/components/toggle_indicator.png b/src/main/resources/assets/saturnclient/textures/gui/components/toggle_indicator.png new file mode 100644 index 0000000..2a50191 Binary files /dev/null and b/src/main/resources/assets/saturnclient/textures/gui/components/toggle_indicator.png differ