diff options
author | lantice3720 <65650884+lantice3720@users.noreply.github.com> | 2023-05-07 15:38:12 +0900 |
---|---|---|
committer | lantice3720 <65650884+lantice3720@users.noreply.github.com> | 2023-05-07 15:38:12 +0900 |
commit | 4b20aca66fd3470a555871b74445dfa452b93896 (patch) | |
tree | a06352c69352672b4ad593627a792f473407ddec /src/main/java | |
parent | d187facbdd47eca0afa5d91b9ed559b2c6b9863e (diff) | |
download | Skyblocker-4b20aca66fd3470a555871b74445dfa452b93896.tar.gz Skyblocker-4b20aca66fd3470a555871b74445dfa452b93896.tar.bz2 Skyblocker-4b20aca66fd3470a555871b74445dfa452b93896.zip |
Fixed item search error. Finished basic integration.
Diffstat (limited to 'src/main/java')
4 files changed, 37 insertions, 88 deletions
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<SkyblockCraftingDisplay> { - public SkyblockCraftingDisplayGenerator() { - for (SkyblockCraftingRecipe recipe : ItemRegistry.getRecipes()) { + @Override + public Optional<List<SkyblockCraftingDisplay>> getRecipeFor(EntryStack<?> entry) { + if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); + EntryStack<ItemStack> itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); + List<SkyblockCraftingRecipe> filteredRecipes = ItemRegistry.getRecipes() + .stream() + .filter(recipe -> ItemRegistry.getInternalName(recipe.getResult()).equals(ItemRegistry.getInternalName(itemStackEntryStack.getValue()))) + .toList(); + + return Optional.of(generateDisplays(filteredRecipes)); + } + + @Override + public Optional<List<SkyblockCraftingDisplay>> getUsageFor(EntryStack<?> entry) { + if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); + EntryStack<ItemStack> itemStackEntryStack = EntryStacks.of((ItemStack) entry.getValue()); + List<SkyblockCraftingRecipe> 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<SkyblockCraftingDisplay> generateDisplays(List<SkyblockCraftingRecipe> recipes) { + List<SkyblockCraftingDisplay> displays = new ArrayList<>(); + for (SkyblockCraftingRecipe recipe : recipes) { List<EntryIngredient> inputs = new ArrayList<>(); List<EntryIngredient> outputs = new ArrayList<>(); @@ -26,27 +57,10 @@ public class SkyblockCraftingDisplayGenerator implements DynamicDisplayGenerator for (EntryStack<ItemStack> 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<List<SkyblockCraftingDisplay>> getRecipeFor(EntryStack<?> entry) { - if (!(entry.getValue() instanceof ItemStack)) return Optional.empty(); - EntryStack<ItemStack> 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<List<SkyblockCraftingDisplay>> getUsageFor(EntryStack<?> entry) { - return null; - } - - @Override - public Optional<List<SkyblockCraftingDisplay>> 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<EntryStack<?>> 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<EntryIngredient> inputs = new ArrayList<>(); - List<EntryIngredient> outputs = new ArrayList<>(); - - ArrayList<EntryStack<ItemStack>> inputEntryStacks = new ArrayList<>(); - recipe.getGrid().forEach((item) -> inputEntryStacks.add(EntryStacks.of(item))); - - for (EntryStack<ItemStack> 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()); - } } |