Untitled
unknown
plain_text
4 months ago
2.6 kB
8
Indexable
@Override
public void bindXEIWidget(UIElement widget, Content content, IO io) {
if (widget instanceof ItemSlot itemSlot) {
var ingredient = of(content.content);
var items = ingredient.getItems();
if (items.length == 0) return;
if (items.length == 1) {
itemSlot.setItem(items[0]);
} else {
itemSlot.bindDataSource(ScrollDataSource.of(Arrays.stream(items).toList()));
}
// xei
var ingredientIO = switch (io) {
case IN -> IngredientIO.INPUT;
case OUT -> IngredientIO.OUTPUT;
default -> IngredientIO.NONE;
};
if (ingredientIO == IngredientIO.NONE) return;
if (LDLib2.isJeiLoaded()) {
JEISupport.recipeIngredient(itemSlot, ingredientIO, ingredient);
}
if (LDLib2.isReiLoaded()) {
REISupport.recipeIngredient(itemSlot, ingredientIO, ingredient);
}
if (LDLib2.isEmiLoaded()) {
EMISupport.recipeIngredient(itemSlot, ingredientIO, ingredient);
}
itemSlot.xeiRecipeSlot(ingredientIO, content.chance);
}
}
// region XEI Support
public static class JEISupport {
public static void recipeIngredient(ItemSlot itemSlot, IngredientIO io, SizedIngredient ingredient) {
LDLibJEIPlugin.recipeIngredient(itemSlot, io, () -> Arrays.stream(ingredient.getItems())
.map(itemStack -> LDLibJEIPlugin.createTypedIngredient(VanillaTypes.ITEM_STACK, itemStack))
.filter(Optional::isPresent)
.map(Optional::get)
.collect(Collectors.toList()));
}
}
public static class REISupport {
public static void recipeIngredient(ItemSlot itemSlot, IngredientIO io, SizedIngredient ingredient) {
LDLibREIPlugin.recipeIngredient(itemSlot, io, () -> Arrays.stream(ingredient.getItems())
.map(EntryIngredients::of)
.toList()
);
}
}
public static class EMISupport {
public static void recipeIngredient(ItemSlot itemSlot, IngredientIO io, SizedIngredient ingredient) {
LDLibEMIPlugin.recipeIngredient(itemSlot, io, () -> Arrays.stream(ingredient.getItems())
.map(EmiStack::of)
.collect(Collectors.toList())
);
}
}
// endregionEditor is loading...
Leave a Comment