|
1 | 1 | package dev.isxander.yacl3.gui.tab; |
2 | 2 |
|
3 | 3 | import com.google.common.collect.ImmutableList; |
| 4 | +import dev.isxander.yacl3.gui.render.ColorGradientRenderState; |
4 | 5 | import dev.isxander.yacl3.gui.utils.GuiUtils; |
5 | 6 | import dev.isxander.yacl3.mixin.TabNavigationBarAccessor; |
6 | 7 | import net.minecraft.client.Minecraft; |
|
13 | 14 | import net.minecraft.client.gui.components.tabs.TabManager; |
14 | 15 | import net.minecraft.client.gui.components.tabs.TabNavigationBar; |
15 | 16 | import net.minecraft.client.gui.layouts.Layout; |
| 17 | +import net.minecraft.client.gui.layouts.LinearLayout; |
16 | 18 | import net.minecraft.util.Mth; |
17 | 19 | import org.jetbrains.annotations.Nullable; |
18 | 20 |
|
@@ -81,6 +83,36 @@ public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { |
81 | 83 |
|
82 | 84 | super.render(graphics, mouseX, mouseY, delta); |
83 | 85 |
|
| 86 | + LinearLayout layout = accessor.yacl$getLayout(); |
| 87 | + // draw right fade |
| 88 | + if (this.scrollOffset < this.maxScrollOffset - NAVBAR_MARGIN) { |
| 89 | + int right = accessor.yacl$getWidth(); |
| 90 | + ColorGradientRenderState.createHorizontal( |
| 91 | + graphics, |
| 92 | + right - 40, |
| 93 | + layout.getY(), |
| 94 | + right, |
| 95 | + layout.getY() + layout.getHeight(), |
| 96 | + 0x00000000, 0xFF000000 |
| 97 | + ).submit(graphics); |
| 98 | + |
| 99 | + graphics.drawString(font, "→", right - 10, layout.getY() + (layout.getHeight() - font.lineHeight) / 2, 0xFFFFFFFF, false); |
| 100 | + } |
| 101 | + |
| 102 | + // draw left fade |
| 103 | + if (this.scrollOffset > NAVBAR_MARGIN) { |
| 104 | + ColorGradientRenderState.createHorizontal( |
| 105 | + graphics, |
| 106 | + 0, |
| 107 | + layout.getY(), |
| 108 | + 40, |
| 109 | + layout.getY() + layout.getHeight(), |
| 110 | + 0xFF000000, 0x00000000 |
| 111 | + ).submit(graphics); |
| 112 | + |
| 113 | + graphics.drawString(font, "←", 5, layout.getY() + (layout.getHeight() - font.lineHeight) / 2, 0xFFFFFFFF, false); |
| 114 | + } |
| 115 | + |
84 | 116 | GuiUtils.popPose(graphics); |
85 | 117 | } |
86 | 118 |
|
|
0 commit comments