From d187facbdd47eca0afa5d91b9ed559b2c6b9863e Mon Sep 17 00:00:00 2001 From: lantice3720 <65650884+lantice3720@users.noreply.github.com> Date: Sun, 7 May 2023 15:03:23 +0900 Subject: REI Integration. Needed to add recipe identifier. Small change in itemlist. --- .../skyblocker/skyblock/itemlist/ItemRegistry.java | 71 ++++++------------ .../skyblock/itemlist/SearchResultsWidget.java | 6 +- .../skyblock/itemlist/SkyblockCraftingRecipe.java | 63 ++++++++++++++++ .../skyblocker/skyblock/rei/SkyblockCategory.java | 43 +++++++++++ .../skyblock/rei/SkyblockCraftingDisplay.java | 18 +++++ .../rei/SkyblockCraftingDisplayGenerator.java | 52 +++++++++++++ .../skyblock/rei/SkyblockFocusedStackProvider.java | 30 ++++++++ .../skyblock/rei/SkyblockerREIClientPlugin.java | 87 ++++++++++++++++++++++ src/main/resources/fabric.mod.json | 3 + 9 files changed, 322 insertions(+), 51 deletions(-) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java index 008ff191..d0f92731 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java @@ -7,8 +7,6 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import org.eclipse.jgit.api.Git; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.nio.file.Files; @@ -23,7 +21,7 @@ public class ItemRegistry { protected static final List items = new ArrayList<>(); protected static final Map itemsMap = new HashMap<>(); - protected static final List recipes = new ArrayList<>(); + protected static final List recipes = new ArrayList<>(); // TODO: make async public static void init() { @@ -77,13 +75,13 @@ public class ItemRegistry { } for (JsonObject jsonObj : jsonObjs) if (jsonObj.has("recipe")) { - recipes.add(Recipe.fromJsonObject(jsonObj)); + recipes.add(SkyblockCraftingRecipe.fromJsonObject(jsonObj)); } items.sort((lhs, rhs) -> { - String lhsInternalName = lhs.getNbt().getCompound("ExtraAttributes").getString("id"); + String lhsInternalName = getInternalName(lhs); String lhsFamilyName = lhsInternalName.replaceAll(".\\d+$", ""); - String rhsInternalName = rhs.getNbt().getCompound("ExtraAttributes").getString("id"); + String rhsInternalName = getInternalName(rhs); String rhsFamilyName = rhsInternalName.replaceAll(".\\d+$", ""); if (lhsFamilyName.equals(rhsFamilyName)) { if (lhsInternalName.length() != rhsInternalName.length()) @@ -95,56 +93,33 @@ public class ItemRegistry { }); } - public static List getRecipes(String internalName) { - List result = new ArrayList<>(); - for (Recipe recipe : recipes) - if (recipe.result.getNbt().getCompound("ExtraAttributes").getString("id").equals(internalName)) + public static List getRecipes(String internalName) { + List result = new ArrayList<>(); + for (SkyblockCraftingRecipe recipe : recipes) + if (getInternalName(recipe.result).equals(internalName)) result.add(recipe); - for (Recipe recipe : recipes) + for (SkyblockCraftingRecipe recipe : recipes) for (ItemStack ingredient : recipe.grid) - if (!ingredient.getItem().equals(Items.AIR) && ingredient.getNbt().getCompound("ExtraAttributes").getString("id").equals(internalName)) { + if (!ingredient.getItem().equals(Items.AIR) && getInternalName(ingredient).equals(internalName)) { result.add(recipe); break; } return result; } -} -class Recipe { - private static final Logger LOGGER = LoggerFactory.getLogger(Recipe.class); - String text = ""; - final List grid = new ArrayList<>(9); - ItemStack result; - - public static Recipe fromJsonObject(JsonObject jsonObj) { - Recipe recipe = new Recipe(); - if (jsonObj.has("crafttext")) recipe.text = jsonObj.get("crafttext").getAsString(); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A1").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A2").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A3").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("B1").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("B2").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("B3").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("C1").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("C2").getAsString())); - recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("C3").getAsString())); - recipe.result = ItemRegistry.itemsMap.get(jsonObj.get("internalname").getAsString()); - return recipe; + public static List getRecipes() { + return recipes; } - private static ItemStack getItemStack(String internalName) { - try { - if (internalName.length() > 0) { - int count = Integer.parseInt(internalName.split(":")[1]); - internalName = internalName.split(":")[0]; - ItemStack itemStack = ItemRegistry.itemsMap.get(internalName).copy(); - itemStack.setCount(count); - return itemStack; - } - } - catch(Exception e) { - LOGGER.error("[Skyblocker-Recipe] "+internalName,e); - } - return Items.AIR.getDefaultStack(); + /** + * Get Internal name of an ItemStack + * + * @param itemStack ItemStack to get internal name from + * @return internal name of the given ItemStack + */ + public static String getInternalName(ItemStack itemStack) { + if (itemStack.getNbt() == null) return ""; + return itemStack.getNbt().getCompound("ExtraAttributes").getString("id"); } -} \ No newline at end of file +} + diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java index 64ba237d..63ccbd52 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java @@ -22,7 +22,7 @@ public class SearchResultsWidget implements Drawable { private final int parentY; private final List searchResults = new ArrayList<>(); - private List recipeResults = new ArrayList<>(); + private List recipeResults = new ArrayList<>(); private String searchText = null; private final List resultButtons = new ArrayList<>(); private final ToggleButtonWidget nextPageButton; @@ -79,7 +79,7 @@ public class SearchResultsWidget implements Drawable { private void updateButtons() { if (this.displayRecipes) { - Recipe recipe = this.recipeResults.get(this.currentPage); + SkyblockCraftingRecipe recipe = this.recipeResults.get(this.currentPage); for (ResultButtonWidget button : resultButtons) button.clearItemStack(); resultButtons.get(5).setItemStack(recipe.grid.get(0)); @@ -142,7 +142,7 @@ public class SearchResultsWidget implements Drawable { continue; } String internalName = button.itemStack.getNbt().getCompound("ExtraAttributes").getString("id"); - List recipes = ItemRegistry.getRecipes(internalName); + List recipes = ItemRegistry.getRecipes(internalName); if (!recipes.isEmpty()) { this.recipeResults = recipes; this.currentPage = 0; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java new file mode 100644 index 00000000..fc3d6c3d --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java @@ -0,0 +1,63 @@ +package me.xmrvizzy.skyblocker.skyblock.itemlist; + +import com.google.gson.JsonObject; +import net.minecraft.inventory.CraftingInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.recipe.CraftingRecipe; +import net.minecraft.recipe.RecipeSerializer; +import net.minecraft.recipe.book.CraftingRecipeCategory; +import net.minecraft.registry.DynamicRegistryManager; +import net.minecraft.util.Identifier; +import net.minecraft.world.World; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.List; + +public class SkyblockCraftingRecipe { + private static final Logger LOGGER = LoggerFactory.getLogger(SkyblockCraftingRecipe.class); + String text = ""; + final List grid = new ArrayList<>(9); + ItemStack result; + + public static SkyblockCraftingRecipe fromJsonObject(JsonObject jsonObj) { + SkyblockCraftingRecipe recipe = new SkyblockCraftingRecipe(); + if (jsonObj.has("crafttext")) recipe.text = jsonObj.get("crafttext").getAsString(); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A1").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A2").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A3").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("B1").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("B2").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("B3").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("C1").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("C2").getAsString())); + recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("C3").getAsString())); + recipe.result = ItemRegistry.itemsMap.get(jsonObj.get("internalname").getAsString()); + return recipe; + } + + private static ItemStack getItemStack(String internalName) { + try { + if (internalName.length() > 0) { + int count = internalName.split(":").length == 1 ? 1 : Integer.parseInt(internalName.split(":")[1]); + internalName = internalName.split(":")[0]; + ItemStack itemStack = ItemRegistry.itemsMap.get(internalName).copy(); + itemStack.setCount(count); + return itemStack; + } + } catch (Exception e) { + LOGGER.error("[Skyblocker-Recipe] " + internalName, e); + } + return Items.AIR.getDefaultStack(); + } + + public List getGrid() { + return grid; + } + + public ItemStack getResult() { + return result; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java new file mode 100644 index 00000000..cafdf11b --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java @@ -0,0 +1,43 @@ +package me.xmrvizzy.skyblocker.skyblock.rei; + +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import me.shedaniel.rei.api.client.gui.Renderer; +import me.shedaniel.rei.api.client.registry.display.DisplayCategory; +import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import me.shedaniel.rei.api.common.util.EntryStacks; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.StringNbtReader; +import net.minecraft.text.Text; + +import java.util.Locale; + +/** + * Skyblock recipe category class for REI + */ +public class SkyblockCategory implements DisplayCategory { + @Override + public CategoryIdentifier getCategoryIdentifier() { + return SkyblockerREIClientPlugin.SKYBLOCK; + } + + @Override + public Text getTitle() { + // TODO use own translation key + return Text.translatable("key.categories.skyblocker"); + } + + @Override + public Renderer getIcon() { + // TODO separate icon from quickNav + SkyblockerConfig.ItemData iconItem = SkyblockerConfig.get().quickNav.button7.item; + String nbtString = "{id:\"minecraft:" + iconItem.itemName.toLowerCase(Locale.ROOT) + "\",Count:1"; + if (iconItem.nbt.length() > 2) nbtString += "," + iconItem.nbt; + nbtString += "}"; + try { + return EntryStacks.of(ItemStack.fromNbt(StringNbtReader.parse(nbtString))); + } catch (CommandSyntaxException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java new file mode 100644 index 00000000..aee78990 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java @@ -0,0 +1,18 @@ +package me.xmrvizzy.skyblocker.skyblock.rei; + + +import me.shedaniel.rei.api.common.entry.EntryIngredient; +import me.shedaniel.rei.plugin.common.displays.crafting.DefaultCustomDisplay; +import net.minecraft.recipe.Recipe; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +/** + * Skyblock Crafting Recipe display class for REI + */ +public class SkyblockCraftingDisplay extends DefaultCustomDisplay { + public SkyblockCraftingDisplay(@Nullable Recipe possibleRecipe, List input, List output) { + super(possibleRecipe, input, output); + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java new file mode 100644 index 00000000..73ace337 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java @@ -0,0 +1,52 @@ +package me.xmrvizzy.skyblocker.skyblock.rei; + +import me.shedaniel.rei.api.client.registry.display.DynamicDisplayGenerator; +import me.shedaniel.rei.api.client.view.ViewSearchBuilder; +import me.shedaniel.rei.api.common.entry.EntryIngredient; +import me.shedaniel.rei.api.common.entry.EntryStack; +import me.shedaniel.rei.api.common.util.EntryStacks; +import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry; +import me.xmrvizzy.skyblocker.skyblock.itemlist.SkyblockCraftingRecipe; +import net.minecraft.item.ItemStack; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator { + + public SkyblockCraftingDisplayGenerator() { + for (SkyblockCraftingRecipe recipe : ItemRegistry.getRecipes()) { + List inputs = new ArrayList<>(); + List outputs = new ArrayList<>(); + + ArrayList> inputEntryStacks = new ArrayList<>(); + recipe.getGrid().forEach((item) -> inputEntryStacks.add(EntryStacks.of(item))); + + for (EntryStack entryStack : inputEntryStacks) { + inputs.add(EntryIngredient.of(entryStack)); + } +// inputs.add(EntryIngredient.of(inputEntryStacks.get(0))); + outputs.add(EntryIngredient.of(EntryStacks.of(recipe.getResult()))); +// displayRegistry.add(new SkyblockCraftingDisplay(null, inputs, outputs)); + } + } + + @Override + public Optional> getRecipeFor(EntryStack entry) { + if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); + EntryStack itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); + ItemRegistry.getRecipes().stream().filter(recipe -> ItemRegistry.getInternalName(recipe.getResult()).equals(ItemRegistry.getInternalName(itemStackEntryStack.getValue()))); + return null; + } + + @Override + public Optional> getUsageFor(EntryStack entry) { + return null; + } + + @Override + public Optional> generate(ViewSearchBuilder builder) { + return null; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java new file mode 100644 index 00000000..a9941ace --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java @@ -0,0 +1,30 @@ +package me.xmrvizzy.skyblocker.skyblock.rei; + +import dev.architectury.event.CompoundEventResult; +import me.shedaniel.math.Point; +import me.shedaniel.rei.api.client.registry.screen.FocusedStackProvider; +import me.shedaniel.rei.api.common.entry.EntryStack; +import me.shedaniel.rei.api.common.util.EntryStacks; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ingame.HandledScreen; + +public class SkyblockFocusedStackProvider implements FocusedStackProvider { + @Override + public CompoundEventResult> provide(Screen screen, Point mouse) { + + return CompoundEventResult.pass(); +// if (screen instanceof HandledScreen handledScreen) { +// System.out.println(handledScreen.getTitle().getString() + ", item: " + handledScreen.getScreenHandler().getCursorStack().getItem().getName().getString()); +// return CompoundEventResult.interruptFalse(EntryStacks.of(handledScreen.getScreenHandler().getCursorStack())); +// } else { +// System.out.println(screen.getTitle().getString()); +// screen. +// } +// return CompoundEventResult.pass(); + } + + @Override + public double getPriority() { + return 100d; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java new file mode 100644 index 00000000..907bacad --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java @@ -0,0 +1,87 @@ +package me.xmrvizzy.skyblocker.skyblock.rei; + +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import me.shedaniel.rei.api.client.plugins.REIClientPlugin; +import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; +import me.shedaniel.rei.api.client.registry.display.DisplayRegistry; +import me.shedaniel.rei.api.client.registry.display.DynamicDisplayGenerator; +import me.shedaniel.rei.api.client.registry.entry.EntryRegistry; +import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry; +import me.shedaniel.rei.api.client.view.ViewSearchBuilder; +import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import me.shedaniel.rei.api.common.entry.EntryIngredient; +import me.shedaniel.rei.api.common.entry.EntryStack; +import me.shedaniel.rei.api.common.util.EntryStacks; +import me.xmrvizzy.skyblocker.SkyblockerMod; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry; +import me.xmrvizzy.skyblocker.skyblock.itemlist.SkyblockCraftingRecipe; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.StringNbtReader; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +/** + * REI integration + */ +public class SkyblockerREIClientPlugin implements REIClientPlugin { + public static final CategoryIdentifier SKYBLOCK = CategoryIdentifier.of(SkyblockerMod.NAMESPACE, "skyblock"); + + @Override + public void registerCategories(CategoryRegistry categoryRegistry) { + // TODO separate icon from quickNav + SkyblockerConfig.ItemData iconItem = SkyblockerConfig.get().quickNav.button7.item; + String nbtString = "{id:\"minecraft:" + iconItem.itemName.toLowerCase(Locale.ROOT) + "\",Count:1"; + if (iconItem.nbt.length() > 2) nbtString += "," + iconItem.nbt; + nbtString += "}"; + + try { + categoryRegistry.addWorkstations(SKYBLOCK, EntryStacks.of(ItemStack.fromNbt(StringNbtReader.parse(nbtString)))); + } catch (CommandSyntaxException e) { + throw new RuntimeException(e); + } + categoryRegistry.add(new SkyblockCategory()); + } + + @Override + public void registerDisplays(DisplayRegistry displayRegistry) { + + ViewSearchBuilder builder = ViewSearchBuilder.builder(); + builder.addCategory(SKYBLOCK); + + System.out.println(displayRegistry.getCategoryDisplayGenerators(SKYBLOCK).isEmpty()); + + + displayRegistry.registerDisplayGenerator(SKYBLOCK, new SkyblockCraftingDisplayGenerator()); + + for (SkyblockCraftingRecipe recipe : ItemRegistry.getRecipes()) { + List inputs = new ArrayList<>(); + List outputs = new ArrayList<>(); + + ArrayList> inputEntryStacks = new ArrayList<>(); + recipe.getGrid().forEach((item) -> inputEntryStacks.add(EntryStacks.of(item))); + + for (EntryStack entryStack : inputEntryStacks) { + inputs.add(EntryIngredient.of(entryStack)); + } +// inputs.add(EntryIngredient.of(inputEntryStacks.get(0))); + outputs.add(EntryIngredient.of(EntryStacks.of(recipe.getResult()))); + displayRegistry.add(new SkyblockCraftingDisplay(null, inputs, outputs)); + } + + } + + @Override + public void registerEntries(EntryRegistry entryRegistry) { + ArrayList> entries = new ArrayList<>(); + ItemRegistry.getRecipes().forEach(recipe -> entries.add(EntryStacks.of(recipe.getResult()))); + entryRegistry.addEntries(entries); + } + + @Override + public void registerScreens(ScreenRegistry screenRegistry) { + screenRegistry.registerFocusedStack(new SkyblockFocusedStackProvider()); + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index dd94270d..d1bca1b1 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -20,6 +20,9 @@ ], "modmenu": [ "me.xmrvizzy.skyblocker.config.modmenu.ModMenuEntry" + ], + "rei_client": [ + "me.xmrvizzy.skyblocker.skyblock.rei.SkyblockerREIClientPlugin" ] }, "mixins": [ -- cgit From 4b20aca66fd3470a555871b74445dfa452b93896 Mon Sep 17 00:00:00 2001 From: lantice3720 <65650884+lantice3720@users.noreply.github.com> Date: Sun, 7 May 2023 15:38:12 +0900 Subject: Fixed item search error. Finished basic integration. --- .../skyblock/itemlist/SkyblockCraftingRecipe.java | 7 --- .../rei/SkyblockCraftingDisplayGenerator.java | 60 +++++++++++++--------- .../skyblock/rei/SkyblockFocusedStackProvider.java | 30 ----------- .../skyblock/rei/SkyblockerREIClientPlugin.java | 28 ---------- 4 files changed, 37 insertions(+), 88 deletions(-) delete mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java index fc3d6c3d..56e5c041 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java @@ -1,15 +1,8 @@ package me.xmrvizzy.skyblocker.skyblock.itemlist; import com.google.gson.JsonObject; -import net.minecraft.inventory.CraftingInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.recipe.CraftingRecipe; -import net.minecraft.recipe.RecipeSerializer; -import net.minecraft.recipe.book.CraftingRecipeCategory; -import net.minecraft.registry.DynamicRegistryManager; -import net.minecraft.util.Identifier; -import net.minecraft.world.World; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java index 73ace337..5f4a1824 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java @@ -1,7 +1,6 @@ package me.xmrvizzy.skyblocker.skyblock.rei; import me.shedaniel.rei.api.client.registry.display.DynamicDisplayGenerator; -import me.shedaniel.rei.api.client.view.ViewSearchBuilder; import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.util.EntryStacks; @@ -15,8 +14,40 @@ import java.util.Optional; public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator { - public SkyblockCraftingDisplayGenerator() { - for (SkyblockCraftingRecipe recipe : ItemRegistry.getRecipes()) { + @Override + public Optional> getRecipeFor(EntryStack entry) { + if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); + EntryStack itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); + List filteredRecipes = ItemRegistry.getRecipes() + .stream() + .filter(recipe -> ItemRegistry.getInternalName(recipe.getResult()).equals(ItemRegistry.getInternalName(itemStackEntryStack.getValue()))) + .toList(); + + return Optional.of(generateDisplays(filteredRecipes)); + } + + @Override + public Optional> getUsageFor(EntryStack entry) { + if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); + EntryStack itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); + List filteredRecipes = ItemRegistry.getRecipes() + .stream() + .filter(recipe -> { + for (ItemStack item : recipe.getGrid()) { + if(ItemRegistry.getInternalName(item).equals(ItemRegistry.getInternalName(itemStackEntryStack.getValue()))) return true; + } + return false; + }) + .toList(); + return Optional.of(generateDisplays(filteredRecipes)); + } + + /** + * Generate Displays from a list of recipes + */ + private List generateDisplays(List recipes) { + List displays = new ArrayList<>(); + for (SkyblockCraftingRecipe recipe : recipes) { List inputs = new ArrayList<>(); List outputs = new ArrayList<>(); @@ -26,27 +57,10 @@ public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator for (EntryStack entryStack : inputEntryStacks) { inputs.add(EntryIngredient.of(entryStack)); } -// inputs.add(EntryIngredient.of(inputEntryStacks.get(0))); outputs.add(EntryIngredient.of(EntryStacks.of(recipe.getResult()))); -// displayRegistry.add(new SkyblockCraftingDisplay(null, inputs, outputs)); - } - } - - @Override - public Optional> getRecipeFor(EntryStack entry) { - if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); - EntryStack itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); - ItemRegistry.getRecipes().stream().filter(recipe -> ItemRegistry.getInternalName(recipe.getResult()).equals(ItemRegistry.getInternalName(itemStackEntryStack.getValue()))); - return null; - } - @Override - public Optional> getUsageFor(EntryStack entry) { - return null; - } - - @Override - public Optional> generate(ViewSearchBuilder builder) { - return null; + displays.add(new SkyblockCraftingDisplay(null, inputs, outputs)); + } + return displays; } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java deleted file mode 100644 index a9941ace..00000000 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java +++ /dev/null @@ -1,30 +0,0 @@ -package me.xmrvizzy.skyblocker.skyblock.rei; - -import dev.architectury.event.CompoundEventResult; -import me.shedaniel.math.Point; -import me.shedaniel.rei.api.client.registry.screen.FocusedStackProvider; -import me.shedaniel.rei.api.common.entry.EntryStack; -import me.shedaniel.rei.api.common.util.EntryStacks; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.HandledScreen; - -public class SkyblockFocusedStackProvider implements FocusedStackProvider { - @Override - public CompoundEventResult> provide(Screen screen, Point mouse) { - - return CompoundEventResult.pass(); -// if (screen instanceof HandledScreen handledScreen) { -// System.out.println(handledScreen.getTitle().getString() + ", item: " + handledScreen.getScreenHandler().getCursorStack().getItem().getName().getString()); -// return CompoundEventResult.interruptFalse(EntryStacks.of(handledScreen.getScreenHandler().getCursorStack())); -// } else { -// System.out.println(screen.getTitle().getString()); -// screen. -// } -// return CompoundEventResult.pass(); - } - - @Override - public double getPriority() { - return 100d; - } -} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java index 907bacad..3cf4e9f4 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java @@ -4,23 +4,18 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import me.shedaniel.rei.api.client.plugins.REIClientPlugin; import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; import me.shedaniel.rei.api.client.registry.display.DisplayRegistry; -import me.shedaniel.rei.api.client.registry.display.DynamicDisplayGenerator; import me.shedaniel.rei.api.client.registry.entry.EntryRegistry; -import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry; import me.shedaniel.rei.api.client.view.ViewSearchBuilder; import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.util.EntryStacks; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry; -import me.xmrvizzy.skyblocker.skyblock.itemlist.SkyblockCraftingRecipe; import net.minecraft.item.ItemStack; import net.minecraft.nbt.StringNbtReader; import java.util.ArrayList; -import java.util.List; import java.util.Locale; /** @@ -51,26 +46,8 @@ public class SkyblockerREIClientPlugin implements REIClientPlugin { ViewSearchBuilder builder = ViewSearchBuilder.builder(); builder.addCategory(SKYBLOCK); - System.out.println(displayRegistry.getCategoryDisplayGenerators(SKYBLOCK).isEmpty()); - - displayRegistry.registerDisplayGenerator(SKYBLOCK, new SkyblockCraftingDisplayGenerator()); - for (SkyblockCraftingRecipe recipe : ItemRegistry.getRecipes()) { - List inputs = new ArrayList<>(); - List outputs = new ArrayList<>(); - - ArrayList> inputEntryStacks = new ArrayList<>(); - recipe.getGrid().forEach((item) -> inputEntryStacks.add(EntryStacks.of(item))); - - for (EntryStack entryStack : inputEntryStacks) { - inputs.add(EntryIngredient.of(entryStack)); - } -// inputs.add(EntryIngredient.of(inputEntryStacks.get(0))); - outputs.add(EntryIngredient.of(EntryStacks.of(recipe.getResult()))); - displayRegistry.add(new SkyblockCraftingDisplay(null, inputs, outputs)); - } - } @Override @@ -79,9 +56,4 @@ public class SkyblockerREIClientPlugin implements REIClientPlugin { ItemRegistry.getRecipes().forEach(recipe -> entries.add(EntryStacks.of(recipe.getResult()))); entryRegistry.addEntries(entries); } - - @Override - public void registerScreens(ScreenRegistry screenRegistry) { - screenRegistry.registerFocusedStack(new SkyblockFocusedStackProvider()); - } } -- cgit From 65904ad25164e0d6ddb6904a593e4799e868a6ef Mon Sep 17 00:00:00 2001 From: lantice3720 <65650884+lantice3720@users.noreply.github.com> Date: Sun, 7 May 2023 16:01:34 +0900 Subject: Changed Workstaton icon. --- .../skyblocker/skyblock/rei/SkyblockCategory.java | 1 - .../skyblock/rei/SkyblockerREIClientPlugin.java | 17 ++--------------- 2 files changed, 2 insertions(+), 16 deletions(-) (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java index cafdf11b..737adfa8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java @@ -23,7 +23,6 @@ public class SkyblockCategory implements DisplayCategory 2) nbtString += "," + iconItem.nbt; - nbtString += "}"; - - try { - categoryRegistry.addWorkstations(SKYBLOCK, EntryStacks.of(ItemStack.fromNbt(StringNbtReader.parse(nbtString)))); - } catch (CommandSyntaxException e) { - throw new RuntimeException(e); - } + categoryRegistry.addWorkstations(SKYBLOCK, EntryStacks.of(Items.CRAFTING_TABLE)); categoryRegistry.add(new SkyblockCategory()); } -- cgit From 1f98f045e18fbb99471de36b488762a315e00cf3 Mon Sep 17 00:00:00 2001 From: lantice3720 <65650884+lantice3720@users.noreply.github.com> Date: Sun, 7 May 2023 16:57:02 +0900 Subject: Fixed usage find mechanism error --- .../skyblock/rei/SkyblockCraftingDisplayGenerator.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java index 5f4a1824..7d10f202 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java @@ -17,10 +17,10 @@ public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator @Override public Optional> getRecipeFor(EntryStack entry) { if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); - EntryStack itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); + EntryStack inputItem = EntryStacks.of((ItemStack) entry.getValue()); List filteredRecipes = ItemRegistry.getRecipes() .stream() - .filter(recipe -> ItemRegistry.getInternalName(recipe.getResult()).equals(ItemRegistry.getInternalName(itemStackEntryStack.getValue()))) + .filter(recipe -> ItemRegistry.getInternalName(recipe.getResult()).equals(ItemRegistry.getInternalName(inputItem.getValue()))) .toList(); return Optional.of(generateDisplays(filteredRecipes)); @@ -29,12 +29,13 @@ public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator @Override public Optional> getUsageFor(EntryStack entry) { if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); - EntryStack itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); + EntryStack inputItem = EntryStacks.of((ItemStack) entry.getValue()); List filteredRecipes = ItemRegistry.getRecipes() .stream() .filter(recipe -> { for (ItemStack item : recipe.getGrid()) { - if(ItemRegistry.getInternalName(item).equals(ItemRegistry.getInternalName(itemStackEntryStack.getValue()))) return true; + if(!ItemRegistry.getInternalName(item).equals("") && ItemRegistry.getInternalName(item).equals(ItemRegistry.getInternalName(inputItem.getValue()))) + return true; } return false; }) -- cgit From 506a4b1e80a16846b5404d1ae47a23afcf6b784e Mon Sep 17 00:00:00 2001 From: lantice3720 <65650884+lantice3720@users.noreply.github.com> Date: Thu, 18 May 2023 01:25:41 +0900 Subject: Added crafting requirement text, fixed dependency --- build.gradle | 2 +- .../skyblock/itemlist/SearchResultsWidget.java | 2 +- .../skyblock/itemlist/SkyblockCraftingRecipe.java | 8 ++- .../skyblocker/skyblock/rei/SkyblockCategory.java | 57 ++++++++++++++++++++++ .../skyblock/rei/SkyblockCraftingDisplay.java | 35 ++++++++++--- .../rei/SkyblockCraftingDisplayGenerator.java | 2 +- .../skyblock/rei/SkyblockerREIClientPlugin.java | 5 -- 7 files changed, 94 insertions(+), 17 deletions(-) (limited to 'src/main') diff --git a/build.gradle b/build.gradle index c0ba2b6a..5ee08867 100644 --- a/build.gradle +++ b/build.gradle @@ -51,7 +51,7 @@ dependencies { modImplementation "com.terraformersmc:modmenu:${project.mod_menu_version}" // REI - modImplementation "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" + modCompileOnly "me.shedaniel:RoughlyEnoughItems-api-fabric:${project.rei_version}" modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}" // Fabric API. This is technically optional, but you probably want it anyway. diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java index 63ccbd52..ce53112b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchResultsWidget.java @@ -109,7 +109,7 @@ public class SearchResultsWidget implements Drawable { public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { RenderSystem.disableDepthTest(); if (this.displayRecipes) { - String craftText = this.recipeResults.get(this.currentPage).text; + String craftText = this.recipeResults.get(this.currentPage).craftText; this.client.textRenderer.drawWithShadow(matrices, craftText, this.parentX + 11, this.parentY + 31, 0xffffffff); Text resultText = this.recipeResults.get(this.currentPage).result.getName(); this.client.textRenderer.drawWithShadow(matrices, resultText, this.parentX + 11, this.parentY + 43, 0xffffffff); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java index 56e5c041..29aed7a1 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java @@ -11,13 +11,13 @@ import java.util.List; public class SkyblockCraftingRecipe { private static final Logger LOGGER = LoggerFactory.getLogger(SkyblockCraftingRecipe.class); - String text = ""; + String craftText = ""; final List grid = new ArrayList<>(9); ItemStack result; public static SkyblockCraftingRecipe fromJsonObject(JsonObject jsonObj) { SkyblockCraftingRecipe recipe = new SkyblockCraftingRecipe(); - if (jsonObj.has("crafttext")) recipe.text = jsonObj.get("crafttext").getAsString(); + if (jsonObj.has("crafttext")) recipe.craftText = jsonObj.get("crafttext").getAsString(); recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A1").getAsString())); recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A2").getAsString())); recipe.grid.add(getItemStack(jsonObj.getAsJsonObject("recipe").get("A3").getAsString())); @@ -53,4 +53,8 @@ public class SkyblockCraftingRecipe { public ItemStack getResult() { return result; } + + public String getCraftText() { + return craftText; + } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java index 737adfa8..a52abeaa 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java @@ -1,15 +1,27 @@ package me.xmrvizzy.skyblocker.skyblock.rei; +import com.google.common.collect.Lists; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import me.shedaniel.math.Point; +import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.client.gui.Renderer; +import me.shedaniel.rei.api.client.gui.widgets.Label; +import me.shedaniel.rei.api.client.gui.widgets.Slot; +import me.shedaniel.rei.api.client.gui.widgets.Widget; +import me.shedaniel.rei.api.client.gui.widgets.Widgets; import me.shedaniel.rei.api.client.registry.display.DisplayCategory; import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.util.EntryStacks; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; +import net.minecraft.client.MinecraftClient; import net.minecraft.item.ItemStack; import net.minecraft.nbt.StringNbtReader; import net.minecraft.text.Text; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Locale; /** @@ -39,4 +51,49 @@ public class SkyblockCategory implements DisplayCategory setupDisplay(SkyblockCraftingDisplay display, Rectangle bounds) { + List out = new ArrayList<>(); + out.add(Widgets.createRecipeBase(bounds)); + + Point startPoint; + if (!display.getCraftText().isEmpty() && display.getCraftText() != null) { + startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 31); + } + else { + startPoint = new Point(bounds.getCenterX() - 58, bounds.getCenterY() - 26); + } + Point resultPoint = new Point(startPoint.x + 95, startPoint.y + 19); + out.add(Widgets.createArrow(new Point(startPoint.x + 60, startPoint.y + 18))); + out.add(Widgets.createResultSlotBackground(resultPoint)); + + // Generate Slots + List input = display.getInputEntries(); + List slots = Lists.newArrayList(); + for (int y = 0; y < 3; y++) + for (int x = 0; x < 3; x++) + slots.add(Widgets.createSlot(new Point(startPoint.x + 1 + x * 18, startPoint.y + 1 + y * 18)).markInput()); + for (int i = 0; i < input.size(); i++) { + slots.get(i).entries(input.get(i)).markInput(); + } + out.addAll(slots); + out.add(Widgets.createSlot(resultPoint).entries(display.getOutputEntries().get(0)).disableBackground().markOutput()); + + // Add craftingText Label + Label craftTextLabel = Widgets.createLabel(new Point(bounds.getCenterX(), startPoint.y + 55), Text.of(display.getCraftText())); + out.add(craftTextLabel); + return out; + } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java index aee78990..5820780c 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplay.java @@ -1,18 +1,39 @@ package me.xmrvizzy.skyblocker.skyblock.rei; +import me.shedaniel.rei.api.common.category.CategoryIdentifier; +import me.shedaniel.rei.api.common.display.SimpleGridMenuDisplay; +import me.shedaniel.rei.api.common.display.basic.BasicDisplay; import me.shedaniel.rei.api.common.entry.EntryIngredient; -import me.shedaniel.rei.plugin.common.displays.crafting.DefaultCustomDisplay; -import net.minecraft.recipe.Recipe; -import org.jetbrains.annotations.Nullable; import java.util.List; /** * Skyblock Crafting Recipe display class for REI */ -public class SkyblockCraftingDisplay extends DefaultCustomDisplay { - public SkyblockCraftingDisplay(@Nullable Recipe possibleRecipe, List input, List output) { - super(possibleRecipe, input, output); +public class SkyblockCraftingDisplay extends BasicDisplay implements SimpleGridMenuDisplay { + + private final String craftText; + public SkyblockCraftingDisplay(List input, List output, String craftText) { + super(input, output); + this.craftText = craftText; + } + public String getCraftText() { + return craftText; + } + + @Override + public int getWidth() { + return 3; + } + + @Override + public int getHeight() { + return 3; + } + + @Override + public CategoryIdentifier getCategoryIdentifier() { + return SkyblockerREIClientPlugin.SKYBLOCK; } -} +} \ No newline at end of file diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java index 7d10f202..fd3f56ee 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java @@ -60,7 +60,7 @@ public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator } outputs.add(EntryIngredient.of(EntryStacks.of(recipe.getResult()))); - displays.add(new SkyblockCraftingDisplay(null, inputs, outputs)); + displays.add(new SkyblockCraftingDisplay(inputs, outputs, recipe.getCraftText())); } return displays; } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java index fee71765..9d428a24 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java @@ -29,12 +29,7 @@ public class SkyblockerREIClientPlugin implements REIClientPlugin { @Override public void registerDisplays(DisplayRegistry displayRegistry) { - - ViewSearchBuilder builder = ViewSearchBuilder.builder(); - builder.addCategory(SKYBLOCK); - displayRegistry.registerDisplayGenerator(SKYBLOCK, new SkyblockCraftingDisplayGenerator()); - } @Override -- cgit From d6caa2fe1a6f792c3ea310d2b5e76dfa25e27ec4 Mon Sep 17 00:00:00 2001 From: lantice3720 <65650884+lantice3720@users.noreply.github.com> Date: Thu, 18 May 2023 01:26:24 +0900 Subject: Added crafting requirement text, fixed dependency --- src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java | 2 -- .../me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java | 1 - 2 files changed, 3 deletions(-) (limited to 'src/main') diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java index a52abeaa..3b402dc9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCategory.java @@ -14,13 +14,11 @@ import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.entry.EntryIngredient; import me.shedaniel.rei.api.common.util.EntryStacks; import me.xmrvizzy.skyblocker.config.SkyblockerConfig; -import net.minecraft.client.MinecraftClient; import net.minecraft.item.ItemStack; import net.minecraft.nbt.StringNbtReader; import net.minecraft.text.Text; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Locale; diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java index 9d428a24..5f43ca0e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java @@ -4,7 +4,6 @@ import me.shedaniel.rei.api.client.plugins.REIClientPlugin; import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; import me.shedaniel.rei.api.client.registry.display.DisplayRegistry; import me.shedaniel.rei.api.client.registry.entry.EntryRegistry; -import me.shedaniel.rei.api.client.view.ViewSearchBuilder; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.util.EntryStacks; -- cgit