Added layers to menus and fixed several bugs (and temporarily removed MythicCraft repos)

This commit is contained in:
Auxilor
2022-09-29 19:10:02 +01:00
parent 33ab8e04a0
commit 740c79f087
13 changed files with 115 additions and 77 deletions

View File

@@ -49,15 +49,32 @@ public interface MenuBuilder {
/**
* Add a component.
*
* @param layer The layer.
* @param row The row of the top left corner.
* @param column The column of the top left corner.
* @param component The component.
* @return The builder.
*/
MenuBuilder addComponent(int row,
MenuBuilder addComponent(@NotNull MenuLayer layer,
int row,
int column,
@NotNull GUIComponent component);
/**
* Add a component.
*
* @param row The row of the top left corner.
* @param column The column of the top left corner.
* @param component The component.
* @return The builder.
*/
default MenuBuilder addComponent(final int row,
final int column,
@NotNull final GUIComponent component) {
return this.addComponent(MenuLayer.BACKGROUND, row, column, component);
}
/**
* Run function to modify the builder.
*
@@ -73,7 +90,7 @@ public interface MenuBuilder {
* @return The builder.
*/
default MenuBuilder setMask(@NotNull final FillerMask mask) {
return this.addComponent(0, 0, mask);
return this.addComponent(MenuLayer.BACKGROUND, 1, 1, mask);
}
/**
@@ -83,7 +100,7 @@ public interface MenuBuilder {
* @return The builder.
*/
default MenuBuilder addPage(@NotNull final Page page) {
return this.addComponent(0, 0, page);
return this.addComponent(MenuLayer.TOP, 1, 1, page);
}
/**

View File

@@ -0,0 +1,31 @@
package com.willfp.eco.core.gui.menu;
/**
* Different layers of the menu.
*/
public enum MenuLayer {
/**
* Right at the back.
*/
BACKGROUND,
/**
* Second from the back.
*/
LOWER,
/**
* In the middle (default).
*/
MIDDLE,
/**
* Near the top.
*/
UPPER,
/**
* At the absolute top.
*/
TOP
}

View File

@@ -59,11 +59,10 @@ public final class PageChanger implements GUIComponent {
}
@Override
public @Nullable
Slot getSlotAt(final int row,
final int column,
@NotNull final Player player,
@NotNull final Menu menu) {
public @Nullable Slot getSlotAt(final int row,
final int column,
@NotNull final Player player,
@NotNull final Menu menu) {
int page = Page.getPage(player, menu);
int maxPage = Page.getMaxPage(player, menu);

View File

@@ -129,6 +129,6 @@ public class FillerMask implements GUIComponent {
@Override
public @Nullable Slot getSlotAt(final int row,
final int column) {
return mask.get(row).get(column);
return mask.get(row - 1).get(column - 1);
}
}