mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-05 09:54:59 +01:00
Fix #5367
This commit is contained in:
parent
bbb9ac8c43
commit
c267a413d9
1 changed files with 36 additions and 36 deletions
|
@ -43,14 +43,9 @@ public class OpenCreateMenuButton extends Button {
|
||||||
ScreenOpener.open(new CreateMainMenuScreen(Minecraft.getInstance().screen));
|
ScreenOpener.open(new CreateMainMenuScreen(Minecraft.getInstance().screen));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class SingleMenuRow {
|
public record SingleMenuRow(String leftTextKey, String rightTextKey) {
|
||||||
public final String left, right;
|
public SingleMenuRow(String centerTextKey) {
|
||||||
public SingleMenuRow(String left, String right) {
|
this(centerTextKey, centerTextKey);
|
||||||
this.left = I18n.get(left);
|
|
||||||
this.right = I18n.get(right);
|
|
||||||
}
|
|
||||||
public SingleMenuRow(String center) {
|
|
||||||
this(center, center);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,11 +65,11 @@ public class OpenCreateMenuButton extends Button {
|
||||||
new SingleMenuRow("menu.returnToMenu")
|
new SingleMenuRow("menu.returnToMenu")
|
||||||
));
|
));
|
||||||
|
|
||||||
protected final List<String> leftButtons, rightButtons;
|
protected final List<String> leftTextKeys, rightTextKeys;
|
||||||
|
|
||||||
public MenuRows(List<SingleMenuRow> variants) {
|
public MenuRows(List<SingleMenuRow> rows) {
|
||||||
leftButtons = variants.stream().map(r -> r.left).collect(Collectors.toList());
|
leftTextKeys = rows.stream().map(SingleMenuRow::leftTextKey).collect(Collectors.toList());
|
||||||
rightButtons = variants.stream().map(r -> r.right).collect(Collectors.toList());
|
rightTextKeys = rows.stream().map(SingleMenuRow::rightTextKey).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,24 +77,30 @@ public class OpenCreateMenuButton extends Button {
|
||||||
public static class OpenConfigButtonHandler {
|
public static class OpenConfigButtonHandler {
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onGuiInit(ScreenEvent.InitScreenEvent event) {
|
public static void onInitScreen(ScreenEvent.InitScreenEvent event) {
|
||||||
Screen gui = event.getScreen();
|
Screen screen = event.getScreen();
|
||||||
|
|
||||||
MenuRows menu = null;
|
MenuRows menu;
|
||||||
int rowIdx = 0, offsetX = 0;
|
int rowIdx;
|
||||||
if (gui instanceof TitleScreen) {
|
int offsetX;
|
||||||
|
if (screen instanceof TitleScreen) {
|
||||||
menu = MenuRows.MAIN_MENU;
|
menu = MenuRows.MAIN_MENU;
|
||||||
rowIdx = AllConfigs.client().mainMenuConfigButtonRow.get();
|
rowIdx = AllConfigs.client().mainMenuConfigButtonRow.get();
|
||||||
offsetX = AllConfigs.client().mainMenuConfigButtonOffsetX.get();
|
offsetX = AllConfigs.client().mainMenuConfigButtonOffsetX.get();
|
||||||
} else if (gui instanceof PauseScreen) {
|
} else if (screen instanceof PauseScreen) {
|
||||||
menu = MenuRows.INGAME_MENU;
|
menu = MenuRows.INGAME_MENU;
|
||||||
rowIdx = AllConfigs.client().ingameMenuConfigButtonRow.get();
|
rowIdx = AllConfigs.client().ingameMenuConfigButtonRow.get();
|
||||||
offsetX = AllConfigs.client().ingameMenuConfigButtonOffsetX.get();
|
offsetX = AllConfigs.client().ingameMenuConfigButtonOffsetX.get();
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rowIdx == 0) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rowIdx != 0 && menu != null) {
|
|
||||||
boolean onLeft = offsetX < 0;
|
boolean onLeft = offsetX < 0;
|
||||||
String target = (onLeft ? menu.leftButtons : menu.rightButtons).get(rowIdx - 1);
|
String targetMessage = I18n.get((onLeft ? menu.leftTextKeys : menu.rightTextKeys).get(rowIdx - 1));
|
||||||
|
|
||||||
int offsetX_ = offsetX;
|
int offsetX_ = offsetX;
|
||||||
MutableObject<GuiEventListener> toAdd = new MutableObject<>(null);
|
MutableObject<GuiEventListener> toAdd = new MutableObject<>(null);
|
||||||
|
@ -109,14 +110,13 @@ public class OpenCreateMenuButton extends Button {
|
||||||
.map(w -> (AbstractWidget) w)
|
.map(w -> (AbstractWidget) w)
|
||||||
.filter(w -> w.getMessage()
|
.filter(w -> w.getMessage()
|
||||||
.getString()
|
.getString()
|
||||||
.equals(target))
|
.equals(targetMessage))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.ifPresent(w -> toAdd
|
.ifPresent(w -> toAdd
|
||||||
.setValue(new OpenCreateMenuButton(w.x + offsetX_ + (onLeft ? -20 : w.getWidth()), w.y)));
|
.setValue(new OpenCreateMenuButton(w.x + offsetX_ + (onLeft ? -20 : w.getWidth()), w.y)));
|
||||||
if (toAdd.getValue() != null)
|
if (toAdd.getValue() != null)
|
||||||
event.addListener(toAdd.getValue());
|
event.addListener(toAdd.getValue());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue