1 package com.irtimaled.bbor.client.gui;
3 import com.irtimaled.bbor.client.interop.ClientInterop;
4 import net.minecraft.client.util.math.MatrixStack;
5 import net.minecraft.world.level.storage.LevelStorage;
6 import net.minecraft.world.level.storage.LevelStorageException;
7 import net.minecraft.world.level.storage.LevelSummary;
11 public class LoadSavesScreen extends ListScreen {
12 private SelectableControlList controlList;
14 public static void show() {
15 ClientInterop.displayScreen(new LoadSavesScreen());
19 protected ControlList buildList(int top, int bottom) {
20 controlList = new SelectableControlList(this.width, this.height, top, bottom);
22 final LevelStorage saveLoader = this.client.getLevelStorage();
23 List<LevelSummary> saveList = saveLoader.getLevelList();
25 saveList.forEach(world -> controlList.add(new WorldSaveRow(world, saveLoader, controlList::setSelectedEntry)));
26 } catch (LevelStorageException e) {
33 protected void onDoneClicked() {
34 getSelectedEntry().done();
38 public void render(MatrixStack matrixStack, int mouseX, int mouseY, float unknown) {
39 ControlListEntry selectedEntry = getSelectedEntry();
40 this.setCanExit(selectedEntry != null && selectedEntry.isVisible());
41 super.render(matrixStack, mouseX, mouseY, unknown);
44 private ControlListEntry getSelectedEntry() {
45 return this.controlList.getSelectedEntry();