aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorlantice3720 <65650884+lantice3720@users.noreply.github.com>2023-05-07 15:38:12 +0900
committerlantice3720 <65650884+lantice3720@users.noreply.github.com>2023-05-07 15:38:12 +0900
commit4b20aca66fd3470a555871b74445dfa452b93896 (patch)
treea06352c69352672b4ad593627a792f473407ddec /src/main/java
parentd187facbdd47eca0afa5d91b9ed559b2c6b9863e (diff)
downloadSkyblocker-4b20aca66fd3470a555871b74445dfa452b93896.tar.gz
Skyblocker-4b20aca66fd3470a555871b74445dfa452b93896.tar.bz2
Skyblocker-4b20aca66fd3470a555871b74445dfa452b93896.zip
Fixed item search error. Finished basic integration.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SkyblockCraftingRecipe.java7
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockCraftingDisplayGenerator.java60
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockFocusedStackProvider.java30
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/rei/SkyblockerREIClientPlugin.java28
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());
- }
}