From e9f9ad1ac087066c1e597054fafc55e95f2ccb1e Mon Sep 17 00:00:00 2001 From: nea Date: Wed, 3 May 2023 20:02:10 +0200 Subject: Fix color not being reset after block highlights --- .../nea/notenoughupdates/features/NEUFeature.kt | 4 +++- .../notenoughupdates/features/world/FairySouls.kt | 26 +++++++++++++--------- 2 files changed, 18 insertions(+), 12 deletions(-) (limited to 'src/main/kotlin/moe/nea/notenoughupdates/features') diff --git a/src/main/kotlin/moe/nea/notenoughupdates/features/NEUFeature.kt b/src/main/kotlin/moe/nea/notenoughupdates/features/NEUFeature.kt index 1d3628e..39cfb35 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/features/NEUFeature.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/features/NEUFeature.kt @@ -1,5 +1,7 @@ package moe.nea.notenoughupdates.features +import moe.nea.notenoughupdates.util.config.ManagedConfig + interface NEUFeature { val name: String val identifier: String @@ -10,7 +12,7 @@ interface NEUFeature { set(value) { FeatureManager.setEnabled(identifier, value) } - + val config: ManagedConfig? get() = null fun onLoad() } diff --git a/src/main/kotlin/moe/nea/notenoughupdates/features/world/FairySouls.kt b/src/main/kotlin/moe/nea/notenoughupdates/features/world/FairySouls.kt index d65af26..2a5219a 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/features/world/FairySouls.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/features/world/FairySouls.kt @@ -3,8 +3,6 @@ package moe.nea.notenoughupdates.features.world import io.github.moulberry.repo.data.Coordinate import kotlinx.serialization.Serializable import kotlinx.serialization.serializer -import net.minecraft.client.MinecraftClient -import net.minecraft.util.math.BlockPos import moe.nea.notenoughupdates.events.ServerChatLineReceivedEvent import moe.nea.notenoughupdates.events.SkyblockServerUpdateEvent import moe.nea.notenoughupdates.events.WorldRenderLastEvent @@ -12,26 +10,32 @@ import moe.nea.notenoughupdates.features.NEUFeature import moe.nea.notenoughupdates.repo.RepoManager import moe.nea.notenoughupdates.util.MC import moe.nea.notenoughupdates.util.SBData +import moe.nea.notenoughupdates.util.blockPos import moe.nea.notenoughupdates.util.config.ManagedConfig import moe.nea.notenoughupdates.util.data.ProfileSpecificDataHolder import moe.nea.notenoughupdates.util.render.RenderBlockContext.Companion.renderBlocks import moe.nea.notenoughupdates.util.unformattedString -val Coordinate.blockPos: BlockPos - get() = BlockPos(x, y, z) -object FairySouls : NEUFeature, - ProfileSpecificDataHolder(serializer(), "found-fairysouls", ::Config) { +object FairySouls : NEUFeature { + + @Serializable - data class Config( + data class Data( val foundSouls: MutableMap> = mutableMapOf() ) + override val config: ManagedConfig + get() = TConfig + + object DConfig : ProfileSpecificDataHolder(serializer(), "found-fairysouls", ::Data) + + object TConfig : ManagedConfig("fairysouls") { val displaySouls by toggle("show") { false } val resetSouls by button("reset") { - FairySouls.data?.foundSouls?.clear() != null + DConfig.data?.foundSouls?.clear() != null updateMissingSouls() } } @@ -49,7 +53,7 @@ object FairySouls : NEUFeature, fun updateMissingSouls() { currentMissingSouls = emptyList() - val c = data ?: return + val c = DConfig.data ?: return val fi = c.foundSouls[currentLocationName] ?: setOf() val cms = currentLocationSouls.toMutableList() fi.asSequence().sortedDescending().filter { it in cms.indices }.forEach { cms.removeAt(it) } @@ -77,11 +81,11 @@ object FairySouls : NEUFeature, private fun markNearestSoul() { val nearestSoul = findNearestClickableSoul() ?: return - val c = data ?: return + val c = DConfig.data ?: return val loc = currentLocationName ?: return val idx = currentLocationSouls.indexOf(nearestSoul) c.foundSouls.computeIfAbsent(loc) { mutableSetOf() }.add(idx) - markDirty() + DConfig.markDirty() updateMissingSouls() } -- cgit