diff options
author | Linnea Gräf <nea@nea.moe> | 2024-07-24 02:22:30 +0200 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-07-24 02:22:30 +0200 |
commit | c7143936d7a1bf3ae49362049541b2d23b11ab8c (patch) | |
tree | 4e905377b8abf56d1a9e253543a6d3a251f9da82 /src/main/kotlin/moe/nea/firmament/repo/EssenceRecipeProvider.kt | |
parent | 4585a11434f44fa0900351825eb3ca38ce64f187 (diff) | |
download | firmament-c7143936d7a1bf3ae49362049541b2d23b11ab8c.tar.gz firmament-c7143936d7a1bf3ae49362049541b2d23b11ab8c.tar.bz2 firmament-c7143936d7a1bf3ae49362049541b2d23b11ab8c.zip |
Add essence upgrade recipes
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/repo/EssenceRecipeProvider.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/firmament/repo/EssenceRecipeProvider.kt | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/repo/EssenceRecipeProvider.kt b/src/main/kotlin/moe/nea/firmament/repo/EssenceRecipeProvider.kt new file mode 100644 index 0000000..09bc49c --- /dev/null +++ b/src/main/kotlin/moe/nea/firmament/repo/EssenceRecipeProvider.kt @@ -0,0 +1,54 @@ +/* + * SPDX-FileCopyrightText: 2024 Linnea Gräf <nea@nea.moe> + * + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +package moe.nea.firmament.repo + +import io.github.moulberry.repo.IReloadable +import io.github.moulberry.repo.NEURepository +import io.github.moulberry.repo.data.NEUIngredient +import io.github.moulberry.repo.data.NEURecipe +import moe.nea.firmament.util.SkyblockId + +class EssenceRecipeProvider : IReloadable { + data class EssenceUpgradeRecipe( + val itemId: SkyblockId, + val starCountAfter: Int, + val essenceCost: Int, + val essenceType: String, // TODO: replace with proper type + val extraItems: List<NEUIngredient>, + ) : NEURecipe { + val essenceIngredient= NEUIngredient.fromString("${essenceType}:$essenceCost") + val allUpgradeComponents = listOf(essenceIngredient) + extraItems + + override fun getAllInputs(): Collection<NEUIngredient> { + return listOf(NEUIngredient.fromString(itemId.neuItem + ":1")) + allUpgradeComponents + } + + override fun getAllOutputs(): Collection<NEUIngredient> { + return listOf(NEUIngredient.fromString(itemId.neuItem + ":1")) + } + } + + var recipes = listOf<EssenceUpgradeRecipe>() + private set + + override fun reload(repository: NEURepository) { + val recipes = mutableListOf<EssenceUpgradeRecipe>() + for ((neuId, costs) in repository.constants.essenceCost.costs) { + for ((starCountAfter, essenceCost) in costs.essenceCosts.entries) { + val items = costs.itemCosts[starCountAfter] ?: emptyList() + recipes.add( + EssenceUpgradeRecipe( + SkyblockId(neuId), + starCountAfter, + essenceCost, + "ESSENCE_" + costs.type.uppercase(), // how flimsy + items.map { NEUIngredient.fromString(it) })) + } + } + this.recipes = recipes + } +} |