summaryrefslogtreecommitdiff
path: root/src/main/java/lv/enes/mc/eris_alchemy/menu/ErisAlchemyMenus.java
blob: 5e3b54a0ade062c39249e52fdb7bb87d4f96423c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package lv.enes.mc.eris_alchemy.menu;

import lv.enes.mc.eris_alchemy.ErisAlchemy;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.flag.FeatureFlags;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.MenuType;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.function.BiConsumer;

public final class ErisAlchemyMenus {
	private static final Map<ResourceLocation, MenuType<?>> menus = new LinkedHashMap<>();

	public static final MenuType<AlchemicalChestMenu> ALCHEMICAL_CHEST = register("alchemy_chest", AlchemicalChestMenu::new);

	public static void consumeMenus(BiConsumer<? super ResourceLocation, ? super MenuType<?>> consumer) {
		menus.forEach(consumer);
	}

	private static <T extends AbstractContainerMenu> MenuType<T> register(String id, MenuType.MenuSupplier<T> supplier) {
		var menuType = new MenuType<>(supplier, FeatureFlags.VANILLA_SET);
		menus.putIfAbsent(new ResourceLocation(ErisAlchemy.ID, id), menuType);
		return menuType;
	}

	private ErisAlchemyMenus() {}
}