feat: Add npc shop recipes
This commit is contained in:
@@ -2,8 +2,10 @@ package moe.nea.firmament.repo
|
||||
|
||||
import io.github.moulberry.repo.IReloadable
|
||||
import io.github.moulberry.repo.NEURepository
|
||||
import io.github.moulberry.repo.data.NEUNpcShopRecipe
|
||||
import io.github.moulberry.repo.data.NEURecipe
|
||||
import moe.nea.firmament.util.SkyblockId
|
||||
import moe.nea.firmament.util.skyblockId
|
||||
|
||||
class BetterRepoRecipeCache(vararg val extraProviders: ExtraRecipeProvider) : IReloadable {
|
||||
var usages: Map<SkyblockId, Set<NEURecipe>> = mapOf()
|
||||
@@ -17,6 +19,9 @@ class BetterRepoRecipeCache(vararg val extraProviders: ExtraRecipeProvider) : IR
|
||||
.flatMap { it.recipes }
|
||||
(baseRecipes + extraProviders.flatMap { it.provideExtraRecipes() })
|
||||
.forEach { recipe ->
|
||||
if (recipe is NEUNpcShopRecipe) {
|
||||
usages.getOrPut(recipe.isSoldBy.skyblockId, ::mutableSetOf).add(recipe)
|
||||
}
|
||||
recipe.allInputs.forEach { usages.getOrPut(SkyblockId(it.itemId), ::mutableSetOf).add(recipe) }
|
||||
recipe.allOutputs.forEach { recipes.getOrPut(SkyblockId(it.itemId), ::mutableSetOf).add(recipe) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user