diff options
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/gui/profileviewer/ProfileViewer.kt')
-rw-r--r-- | src/main/kotlin/moe/nea/firmament/gui/profileviewer/ProfileViewer.kt | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/gui/profileviewer/ProfileViewer.kt b/src/main/kotlin/moe/nea/firmament/gui/profileviewer/ProfileViewer.kt index e86ce8d..6285f6b 100644 --- a/src/main/kotlin/moe/nea/firmament/gui/profileviewer/ProfileViewer.kt +++ b/src/main/kotlin/moe/nea/firmament/gui/profileviewer/ProfileViewer.kt @@ -1,49 +1,36 @@ package moe.nea.firmament.gui.profileviewer import io.github.cottonmc.cotton.gui.client.LightweightGuiDescription -import io.github.cottonmc.cotton.gui.widget.TooltipBuilder import io.github.cottonmc.cotton.gui.widget.WGridPanel import io.github.cottonmc.cotton.gui.widget.WTabPanel -import io.github.cottonmc.cotton.gui.widget.WText import io.github.cottonmc.cotton.gui.widget.data.Insets import io.github.cottonmc.cotton.gui.widget.icon.ItemIcon import java.util.UUID import net.minecraft.item.Items import net.minecraft.text.Text +import net.minecraft.util.DyeColor +import moe.nea.firmament.apis.Member import moe.nea.firmament.apis.Profile -import moe.nea.firmament.apis.Skill -import moe.nea.firmament.repo.RepoManager +import moe.nea.firmament.gui.WBar +import moe.nea.firmament.util.toShedaniel class ProfileViewer( val primaryPlayer: UUID, val playerNames: Map<UUID, String>, val profile: Profile, ) : LightweightGuiDescription() { + + val member: Member = profile.members[primaryPlayer] ?: error("Primary player not in profile") + val primaryName: String = playerNames[primaryPlayer] ?: error("Primary player has no name") + init { - val primaryMember = profile.members[primaryPlayer] ?: error("Primary player not in profile") val panel = WTabPanel().also { rootPanel = it } panel.backgroundPainter - panel.add(WGridPanel().also { - it.insets = Insets.ROOT_PANEL - it.add(WText(Text.literal(playerNames[primaryPlayer] ?: error("Primary player has no name"))), 0, 0, 6, 1) - for ((i, skill) in Skill.values().withIndex()) { - val leveling = RepoManager.neuRepo.constants.leveling - val exp = skill.accessor.get(primaryMember) - val maxLevel = skill.getMaximumLevel(leveling) - val level = skill.getLadder(leveling) - .runningFold(0.0) { a, b -> a + b } - .filter { it <= exp }.size - .coerceAtMost(maxLevel) - it.add(WText(Text.translatable("firmament.pv.skills.${skill.name.lowercase()}")), 0, i + 1, 5, 1) - it.add(object : WText(Text.literal("$level/$maxLevel")) { - override fun addTooltip(tooltip: TooltipBuilder) { - tooltip.add(Text.translatable("firmament.pv.skills.total", exp)) - } - }, 5, i + 1, 2, 1) - } - }) { + panel.add(SkillPage.getElements(this)) { it.icon(ItemIcon(Items.IRON_SWORD)) it.title(Text.translatable("firmament.pv.skills")) } } } + + |