Add parents to collapisble entries
This commit is contained in:
@@ -2,16 +2,18 @@ package moe.nea.notenoughupdates.rei
|
||||
|
||||
import io.github.moulberry.repo.data.NEUItem
|
||||
import me.shedaniel.rei.api.client.plugins.REIClientPlugin
|
||||
import me.shedaniel.rei.api.client.registry.entry.CollapsibleEntryRegistry
|
||||
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry
|
||||
import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry
|
||||
import me.shedaniel.rei.api.common.entry.EntryStack
|
||||
import me.shedaniel.rei.api.common.entry.type.EntryTypeRegistry
|
||||
import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.util.Identifier
|
||||
import moe.nea.notenoughupdates.repo.ItemCache
|
||||
import moe.nea.notenoughupdates.repo.ItemCache.asItemStack
|
||||
import moe.nea.notenoughupdates.repo.RepoManager
|
||||
import moe.nea.notenoughupdates.util.SkyblockId
|
||||
|
||||
|
||||
class NEUReiPlugin : REIClientPlugin {
|
||||
@@ -28,6 +30,16 @@ class NEUReiPlugin : REIClientPlugin {
|
||||
registry.register(SKYBLOCK_ITEM_TYPE_ID, SBItemEntryDefinition)
|
||||
}
|
||||
|
||||
override fun registerCollapsibleEntries(registry: CollapsibleEntryRegistry) {
|
||||
RepoManager.neuRepo.constants.parents.parents
|
||||
.forEach { (parent, children) ->
|
||||
registry.group(
|
||||
SkyblockId(parent).identifier,
|
||||
Text.literal(RepoManager.getNEUItem(SkyblockId(parent))?.displayName ?: parent),
|
||||
(children + parent).map { SBItemEntryDefinition.getEntry(RepoManager.getNEUItem(SkyblockId(it))) })
|
||||
}
|
||||
}
|
||||
|
||||
override fun registerScreens(registry: ScreenRegistry) {
|
||||
registry.registerFocusedStack(SkyblockItemIdFocusedStackProvider)
|
||||
}
|
||||
|
||||
@@ -68,5 +68,7 @@ object SBItemEntryDefinition : EntryDefinition<NEUItem> {
|
||||
return value?.getIdentifier() ?: Identifier.of("skyblockitem", "null")!!
|
||||
}
|
||||
|
||||
fun getEntry(neuItem: NEUItem?) = EntryStack.of(this, neuItem)
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -21,11 +21,10 @@ import net.minecraft.item.Items
|
||||
import net.minecraft.nbt.NbtCompound
|
||||
import net.minecraft.nbt.NbtOps
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.util.Identifier
|
||||
import moe.nea.notenoughupdates.NotEnoughUpdates
|
||||
import moe.nea.notenoughupdates.mixins.accessor.AccessorDataFixTypes
|
||||
import moe.nea.notenoughupdates.util.LegacyTagParser
|
||||
import moe.nea.notenoughupdates.util.appendLore
|
||||
import moe.nea.notenoughupdates.util.skyblockId
|
||||
|
||||
object ItemCache : IReloadable {
|
||||
val dfuLog = Path.of("logs/dfulog.txt")
|
||||
@@ -91,8 +90,7 @@ object ItemCache : IReloadable {
|
||||
return s
|
||||
}
|
||||
|
||||
fun NEUItem.getIdentifier() =
|
||||
Identifier("skyblockitem", skyblockItemId.lowercase().replace(";", "__"))
|
||||
fun NEUItem.getIdentifier() = skyblockId.identifier
|
||||
|
||||
|
||||
var job: Job? = null
|
||||
|
||||
@@ -1,14 +1,20 @@
|
||||
package moe.nea.notenoughupdates.util
|
||||
|
||||
import io.github.moulberry.repo.data.NEUItem
|
||||
import io.github.moulberry.repo.data.Rarity
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.nbt.NbtCompound
|
||||
import net.minecraft.util.Identifier
|
||||
|
||||
@JvmInline
|
||||
value class SkyblockId(val neuItem: String)
|
||||
value class SkyblockId(val neuItem: String) {
|
||||
val identifier get() = Identifier("skyblockitem", neuItem.lowercase().replace(";", "__"))
|
||||
}
|
||||
|
||||
val NEUItem.skyblockId get() = SkyblockId(skyblockItemId)
|
||||
|
||||
@Serializable
|
||||
data class HypixelPetInfo(
|
||||
|
||||
Reference in New Issue
Block a user