diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-01-24 03:18:21 +0100 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-01-24 03:18:40 +0100 |
commit | 56a77d2b1767d7b3d88bb726ae6af5daab43f02c (patch) | |
tree | 3163519a5f876fdbbf5f896b81c2b6b8ee06e6d1 | |
parent | 8c8f0925905f8e785b2ec0e7ccb59bfd5321be4f (diff) | |
download | skyhanni-56a77d2b1767d7b3d88bb726ae6af5daab43f02c.tar.gz skyhanni-56a77d2b1767d7b3d88bb726ae6af5daab43f02c.tar.bz2 skyhanni-56a77d2b1767d7b3d88bb726ae6af5daab43f02c.zip |
Added town board waypoint.
3 files changed, 52 insertions, 3 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/CrimsonIsleReputationHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/CrimsonIsleReputationHelper.kt index 627467f03..c4d5d311e 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/CrimsonIsleReputationHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/CrimsonIsleReputationHelper.kt @@ -10,6 +10,7 @@ import at.hannibal2.skyhanni.features.nether.reputationhelper.miniboss.DailyMini import at.hannibal2.skyhanni.utils.LorenzUtils import at.hannibal2.skyhanni.utils.LorenzVec import at.hannibal2.skyhanni.utils.RenderUtils.renderStringsAndItems +import at.hannibal2.skyhanni.utils.TabListUtils import com.google.gson.JsonObject import net.minecraftforge.client.event.RenderGameOverlayEvent import net.minecraftforge.fml.common.eventhandler.EventPriority @@ -24,9 +25,11 @@ class CrimsonIsleReputationHelper(skyHanniMod: SkyHanniMod) { val kuudraBossHelper = DailyKuudraBossHelper(this) var repoData: JsonObject = JsonObject() + var factionType = FactionType.NONE private val display = mutableListOf<List<Any>>() private var dirty = true + private var tick = 0 init { skyHanniMod.loadModule(questHelper) @@ -53,16 +56,35 @@ class CrimsonIsleReputationHelper(skyHanniMod: SkyHanniMod) { dirty = false updateRender() } + + tick++ + if (tick % 60 == 0) { + TabListUtils.getTabList() + .filter { it.contains("Reputation:") } + .forEach { + factionType = if (it.contains("Mage")) { + FactionType.MAGE + } else if (it.contains("Barbarian")) { + FactionType.BARBARIAN + } else { + FactionType.NONE + } + } + } } private fun updateRender() { display.clear() + //TODO test + if (factionType == FactionType.NONE) return + display.add(Collections.singletonList("Reputation Helper:")) questHelper.render(display) miniBossHelper.render(display) - //TODO check if mage - kuudraBossHelper.render(display) + if (factionType == FactionType.MAGE) { + kuudraBossHelper.render(display) + } } @SubscribeEvent(priority = EventPriority.LOWEST) diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/FactionType.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/FactionType.kt new file mode 100644 index 000000000..389f1ccc0 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/FactionType.kt @@ -0,0 +1,8 @@ +package at.hannibal2.skyhanni.features.nether.reputationhelper + +enum class FactionType { + BARBARIAN, + MAGE, + + NONE +}
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt index 949963414..5d051b5d2 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt @@ -7,6 +7,7 @@ import at.hannibal2.skyhanni.events.GuiContainerEvent import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.ProfileApiDataLoadedEvent import at.hannibal2.skyhanni.features.nether.reputationhelper.CrimsonIsleReputationHelper +import at.hannibal2.skyhanni.features.nether.reputationhelper.FactionType import at.hannibal2.skyhanni.features.nether.reputationhelper.dailykuudra.KuudraTier import at.hannibal2.skyhanni.features.nether.reputationhelper.dailyquest.quest.* import at.hannibal2.skyhanni.features.nether.reputationhelper.miniboss.CrimsonMiniBoss @@ -16,6 +17,7 @@ import at.hannibal2.skyhanni.utils.ItemUtils.getLore import at.hannibal2.skyhanni.utils.ItemUtils.name import at.hannibal2.skyhanni.utils.LorenzColor import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.LorenzVec import at.hannibal2.skyhanni.utils.NEUItems import at.hannibal2.skyhanni.utils.RenderUtils.drawDynamicText import at.hannibal2.skyhanni.utils.RenderUtils.highlight @@ -29,9 +31,11 @@ import java.util.* class DailyQuestHelper(val reputationHelper: CrimsonIsleReputationHelper) { + private val townBoardMage = LorenzVec(-138, 92, -754) + private val townBoardBarbarian = LorenzVec(-572, 100, -687) + private var tick = 0 private val loader = QuestLoader(this) - val quests = mutableListOf<Quest>() private val sacksCache = mutableMapOf<String, Long>() private var latestTrophyFishInInventory = 0 @@ -221,6 +225,21 @@ class DailyQuestHelper(val reputationHelper: CrimsonIsleReputationHelper) { event.drawWaypointFilled(location, LorenzColor.WHITE.toColor()) event.drawDynamicText(location, quest.displayName, 1.5) } + + renderTownBoard(event) + } + + private fun renderTownBoard(event: RenderWorldLastEvent) { + if (quests.any { it.state == QuestState.READY_TO_COLLECT || it.state == QuestState.NOT_ACCEPTED }) { + val location = when (reputationHelper.factionType) { + FactionType.BARBARIAN -> townBoardBarbarian + FactionType.MAGE -> townBoardMage + + FactionType.NONE -> return + } + event.drawWaypointFilled(location, LorenzColor.WHITE.toColor()) + event.drawDynamicText(location, "Town Board", 1.5) + } } fun render(display: MutableList<List<Any>>) { |