1 package com.irtimaled.bbor.client.gui;
3 import com.irtimaled.bbor.client.interop.ClientInterop;
4 import net.minecraft.client.AnvilConverterException;
5 import net.minecraft.world.storage.SaveFormat;
6 import net.minecraft.world.storage.WorldSummary;
10 public class LoadSavesScreen extends ListScreen {
11 private SelectableControlList controlList;
13 public static void show() {
14 ClientInterop.displayScreen(new LoadSavesScreen());
18 protected ControlList buildList(int top, int bottom) {
19 controlList = new SelectableControlList(this.width, this.height, top, bottom);
21 final SaveFormat saveLoader = this.minecraft.getSaveLoader();
22 List<WorldSummary> saveList = saveLoader.getSaveList();
24 saveList.forEach(world -> controlList.add(new WorldSaveRow(world, saveLoader, controlList::setSelectedEntry)));
25 } catch (AnvilConverterException e) {
32 protected void onDoneClicked() {
33 getSelectedEntry().done();
37 public void render(int mouseX, int mouseY, float unknown) {
38 ControlListEntry selectedEntry = getSelectedEntry();
39 this.setCanExit(selectedEntry != null && selectedEntry.isVisible());
40 super.render(mouseX, mouseY, unknown);
43 private ControlListEntry getSelectedEntry() {
44 return this.controlList.getSelectedEntry();