Skip to content

Commit 72254cd

Browse files
committed
port and switch to 26.2
1 parent db9c464 commit 72254cd

14 files changed

Lines changed: 116 additions & 44 deletions

File tree

build.gradle.kts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ modstitch {
8181
prop("deps.fabricLoader", required = true) { fabricLoaderVersion = it }
8282

8383
configureLoom {
84-
runConfigs.all {
84+
runConfigs.configureEach {
8585
ideConfigGenerated(false)
8686
}
8787
runs {
@@ -156,6 +156,14 @@ stonecutter {
156156
}
157157
}
158158

159+
repositories {
160+
maven("https://prmaven.neoforged.net/NeoForge/pr3198") {
161+
content {
162+
includeModule("net.neoforged", "neoforge")
163+
}
164+
}
165+
}
166+
159167
dependencies {
160168
fun Dependency?.jij() = this?.also(::modstitchJiJ)
161169

settings.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ stonecutter {
2424
}
2525

2626
mc("26.1", loaders = listOf("fabric", "neoforge"))
27-
mc("26.2", loaders = listOf("fabric"))
27+
mc("26.2", loaders = listOf("fabric", "neoforge"))
2828
}
2929
}
3030
rootProject.name = "YetAnotherConfigLib"

src/main/java/dev/isxander/yacl3/api/OptionFlag.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,20 @@ public interface OptionFlag extends Consumer<Minecraft> {
1616
OptionFlag GAME_RESTART = client -> GuiUtils.setScreen(new RequireRestartScreen(GuiUtils.getCurrentScreen()));
1717

1818
/** Reloads chunks upon applying (F3+A) */
19-
OptionFlag RELOAD_CHUNKS = client -> client.levelRenderer.allChanged();
19+
OptionFlag RELOAD_CHUNKS =
20+
//? if >=26.2 {
21+
client -> client.levelExtractor.allChanged();
22+
//? } else {
23+
/*client -> client.levelRenderer.allChanged();
24+
*///?}
2025

21-
OptionFlag WORLD_RENDER_UPDATE = client -> client.levelRenderer.needsUpdate();
26+
@Deprecated
27+
OptionFlag WORLD_RENDER_UPDATE =
28+
//? if >=26.2 {
29+
RELOAD_CHUNKS;
30+
//?} else {
31+
/*client -> client.levelRenderer.needsUpdate();
32+
*///?}
2233

2334
OptionFlag ASSET_RELOAD = Minecraft::delayTextureReload;
2435
}

src/main/java/dev/isxander/yacl3/gui/YACLScreen.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,11 @@ protected void init() {
9595
return new CategoryTab(this, category, tabArea);
9696
}).toList());
9797
tabNavigationBar.selectTab(currentTab, false);
98-
tabNavigationBar.arrangeElements();
98+
//? if >=26.2 {
99+
tabNavigationBar.arrangeElements(tabArea.width());
100+
//?} else {
101+
/*tabNavigationBar.arrangeElements();
102+
*///?}
99103
tabManager.setTabArea(tabArea);
100104
addRenderableWidget(tabNavigationBar);
101105

src/main/java/dev/isxander/yacl3/gui/tab/ScrollableNavigationBar.java

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,19 @@
99
import net.minecraft.client.gui.components.AbstractWidget;
1010
import net.minecraft.client.gui.components.TabButton;
1111
import net.minecraft.client.gui.components.events.GuiEventListener;
12+
//? if >=26.2
13+
import net.minecraft.client.gui.components.tabs.MenuTabBar;
1214
import net.minecraft.client.gui.components.tabs.Tab;
1315
import net.minecraft.client.gui.components.tabs.TabManager;
14-
import net.minecraft.client.gui.components.tabs.TabNavigationBar;
16+
//? if <26.2
17+
//import net.minecraft.client.gui.components.tabs.TabNavigationBar;
1518
import net.minecraft.client.gui.layouts.Layout;
1619
import net.minecraft.client.gui.layouts.LinearLayout;
1720
import net.minecraft.util.Mth;
1821
import org.jetbrains.annotations.Nullable;
1922

20-
public class ScrollableNavigationBar extends TabNavigationBar {
23+
public class ScrollableNavigationBar
24+
extends /*? if >=26.2 {*/MenuTabBar/*?} else {*//*TabNavigationBar*//*?}*/ {
2125
private static final int NAVBAR_MARGIN = 28;
2226

2327
private static final Font font = Minecraft.getInstance().font;
@@ -28,7 +32,15 @@ public class ScrollableNavigationBar extends TabNavigationBar {
2832
private final TabNavigationBarAccessor accessor;
2933

3034
public ScrollableNavigationBar(int width, TabManager tabManager, Iterable<? extends Tab> tabs) {
31-
super(width, tabManager, ImmutableList.copyOf(tabs));
35+
//? if >=26.2 {
36+
var tabsList = ImmutableList.<Tab>copyOf(tabs);
37+
var tabButtonsList = ImmutableList.copyOf(tabsList.stream()
38+
.<TabButton>map(tab -> new MenuTabButton(tabManager, tab, 0, 24))
39+
.toList());
40+
super(0, 0, width, 24, tabManager, tabButtonsList, tabsList);
41+
//?} else {
42+
/*super(width, tabManager, ImmutableList.copyOf(tabs));
43+
*///?}
3244
this.accessor = (TabNavigationBarAccessor) this;
3345

3446
// add tab tooltips to the tab buttons
@@ -40,9 +52,12 @@ public ScrollableNavigationBar(int width, TabManager tabManager, Iterable<? exte
4052
}
4153

4254
@Override
43-
public void arrangeElements() {
55+
public void arrangeElements(/*? if >=26.2 {*/final int pWidth/*?}*/) {
56+
int width = /*? if >=26.2 {*/ pWidth; /*?} else {*/ /*accessor.yacl$getWidth(); *//*?}*/
57+
Layout layout = /*? if >=26.2 {*/ this.layout; /*?} else {*/ /*accessor.yacl$getLayout(); *//*?}*/
58+
4459
ImmutableList<TabButton> tabButtons = accessor.yacl$getTabButtons();
45-
int noScrollWidth = accessor.yacl$getWidth() - NAVBAR_MARGIN*2;
60+
int noScrollWidth = width - NAVBAR_MARGIN*2;
4661

4762
int allTabsWidth = 0;
4863
// first pass: set the width of each tab button
@@ -65,26 +80,34 @@ public void arrangeElements() {
6580
allTabsWidth = noScrollWidth;
6681
}
6782

68-
Layout layout = ((TabNavigationBarAccessor) this).yacl$getLayout();
6983
layout.arrangeElements();
7084
layout.setY(0);
7185
scrollOffset = 0;
7286

73-
layout.setX(Math.max((accessor.yacl$getWidth() - allTabsWidth) / 2, NAVBAR_MARGIN));
87+
layout.setX(Math.max((width - allTabsWidth) / 2, NAVBAR_MARGIN));
7488
this.maxScrollOffset = Math.max(0, allTabsWidth - noScrollWidth);
7589
}
7690

7791
@Override
78-
public void extractRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) {
92+
//? if >=26.2 {
93+
public void extractWidgetRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) {
94+
//?} else {
95+
/*public void extractRenderState(GuiGraphicsExtractor graphics, int mouseX, int mouseY, float a) {
96+
*///?}
7997
graphics.pose().pushMatrix();
8098
// render option list BELOW the navbar without need to scissor
8199

82-
super.extractRenderState(graphics, mouseX, mouseY, a);
100+
//? if >=26.2 {
101+
super.extractWidgetRenderState(graphics, mouseX, mouseY, a);
102+
//?} else {
103+
/*super.extractRenderState(graphics, mouseX, mouseY, a);
104+
*///?}
83105

84-
LinearLayout layout = accessor.yacl$getLayout();
106+
Layout layout = /*? if >=26.2 {*/ this.layout; /*?} else {*/ /*accessor.yacl$getLayout(); *//*?}*/
107+
int width = /*? if >=26.2 {*/ this.getWidth(); /*?} else {*/ /*accessor.yacl$getWidth(); *//*?}*/
85108
// draw right fade
86109
if (this.scrollOffset < this.maxScrollOffset - NAVBAR_MARGIN) {
87-
int right = accessor.yacl$getWidth();
110+
int right = width;
88111
ColorGradientRenderState.createHorizontal(
89112
graphics,
90113
right - 40,
@@ -126,7 +149,7 @@ public boolean isMouseOver(double mouseX, double mouseY) {
126149
}
127150

128151
public void setScrollOffset(int scrollOffset) {
129-
Layout layout = ((TabNavigationBarAccessor) this).yacl$getLayout();
152+
Layout layout = /*? if >=26.2 {*/ this.layout; /*?} else {*/ /*accessor.yacl$getLayout(); *//*?}*/
130153

131154
layout.setX(layout.getX() + this.scrollOffset);
132155
this.scrollOffset = Mth.clamp(scrollOffset, 0, maxScrollOffset);
@@ -146,10 +169,12 @@ public void setFocused(@Nullable GuiEventListener child) {
146169
}
147170

148171
protected void ensureVisible(TabButton tabButton) {
172+
int width = /*? if >=26.2 {*/ this.getWidth(); /*?} else {*/ /*accessor.yacl$getWidth(); *//*?}*/
173+
149174
if (tabButton.getX() < NAVBAR_MARGIN) {
150175
this.setScrollOffset(this.scrollOffset - (NAVBAR_MARGIN - tabButton.getX()));
151-
} else if (tabButton.getX() + tabButton.getWidth() > accessor.yacl$getWidth() - NAVBAR_MARGIN) {
152-
this.setScrollOffset(this.scrollOffset + (tabButton.getX() + tabButton.getWidth() - (accessor.yacl$getWidth() - NAVBAR_MARGIN)));
176+
} else if (tabButton.getX() + tabButton.getWidth() > width - NAVBAR_MARGIN) {
177+
this.setScrollOffset(this.scrollOffset + (tabButton.getX() + tabButton.getWidth() - (width - NAVBAR_MARGIN)));
153178
}
154179
}
155180

src/main/java/dev/isxander/yacl3/gui/tab/TabExt.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
import net.minecraft.client.gui.GuiGraphicsExtractor;
44
import net.minecraft.client.gui.components.Tooltip;
55
import net.minecraft.client.gui.components.tabs.Tab;
6+
import net.minecraft.client.gui.layouts.FrameLayout;
7+
import net.minecraft.client.gui.layouts.Layout;
68
import net.minecraft.network.chat.Component;
79
import org.jetbrains.annotations.NotNull;
810
import org.jetbrains.annotations.Nullable;
11+
import org.jspecify.annotations.NonNull;
912

1013
public interface TabExt extends Tab {
1114
@Nullable Tooltip getTooltip();
@@ -18,4 +21,11 @@ default void renderBackground(GuiGraphicsExtractor graphics) {}
1821
default @NotNull Component getTabExtraNarration() {
1922
return Component.empty();
2023
}
24+
25+
//? if >=26.2 {
26+
@Override
27+
default @NonNull Layout getLayout() {
28+
return new FrameLayout();
29+
}
30+
//?}
2131
}

src/main/java/dev/isxander/yacl3/gui/utils/GuiUtils.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ public static FormattedCharSequence overrideStyle(FormattedCharSequence seq, Sty
5252
public static void setScreen(Screen screen, boolean ignoreVanilla) {
5353
if (ignoreVanilla) {
5454
//? >=26.2 {
55-
/*((GuiAccessor) Minecraft.getInstance().gui).yacl$setScreen(screen);
56-
*///? } else {
57-
Minecraft.getInstance().screen = screen;
58-
//? }
55+
((GuiAccessor) Minecraft.getInstance().gui).yacl$setScreen(screen);
56+
//? } else {
57+
/*Minecraft.getInstance().screen = screen;
58+
*///? }
5959
} else {
6060
//? >=26.2 {
61-
/*Minecraft.getInstance().gui.setScreen(screen);
62-
*///? } else {
63-
Minecraft.getInstance().setScreen(screen);
64-
//? }
61+
Minecraft.getInstance().gui.setScreen(screen);
62+
//? } else {
63+
/*Minecraft.getInstance().setScreen(screen);
64+
*///? }
6565
}
6666
}
6767

@@ -71,9 +71,9 @@ public static void setScreen(Screen screen) {
7171

7272
public static Screen getCurrentScreen() {
7373
//? >=26.2 {
74-
/*return Minecraft.getInstance().gui.screen();
75-
*///? } else {
76-
return Minecraft.getInstance().screen;
77-
//? }
74+
return Minecraft.getInstance().gui.screen();
75+
//? } else {
76+
/*return Minecraft.getInstance().screen;
77+
*///? }
7878
}
7979
}

src/main/java/dev/isxander/yacl3/mixin/GuiAccessor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
@Mixin(Gui.class)
99
public interface GuiAccessor {
1010
//? >=26.2 {
11-
/*@Accessor("screen")
11+
@Accessor("screen")
1212
void yacl$setScreen(Screen screen);
13-
*///? }
13+
//? }
1414
}

src/main/java/dev/isxander/yacl3/mixin/MinecraftMixin.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
public class MinecraftMixin {
1212
@Inject(
1313
//? >=26.2 {
14-
/*method = "exitWorldAndClose",
15-
*///? } else {
16-
method = "destroy",
17-
//? }
14+
method = "exitWorldAndClose",
15+
//? } else {
16+
/*method = "destroy",
17+
*///? }
1818
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;close()V")
1919
)
2020
private void closeImages(CallbackInfo ci) {

src/main/java/dev/isxander/yacl3/mixin/TabNavigationBarAccessor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111

1212
@Mixin(TabNavigationBar.class)
1313
public interface TabNavigationBarAccessor {
14-
@Accessor("layout")
14+
//? if <26.2 {
15+
/*@Accessor("layout")
1516
LinearLayout yacl$getLayout();
1617
1718
@Accessor("width")
1819
int yacl$getWidth();
20+
*///?}
1921

2022
@Accessor("tabManager")
2123
TabManager yacl$getTabManager();

0 commit comments

Comments
 (0)