aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-03-08 16:08:47 +0100
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-03-08 16:08:47 +0100
commit2aa43969da8e5413e25bfa107d60e6a5835ee1e1 (patch)
treeb9a6e71b6951489485a0fb8c9c02e9120925bb9a /src/main/java/at/hannibal2/skyhanni/features/garden
parent6a52e0a5c9d168ad0e3ef549f6a77e140f92b174 (diff)
downloadskyhanni-2aa43969da8e5413e25bfa107d60e6a5835ee1e1.tar.gz
skyhanni-2aa43969da8e5413e25bfa107d60e6a5835ee1e1.tar.bz2
skyhanni-2aa43969da8e5413e25bfa107d60e6a5835ee1e1.zip
Add rancher boots speed display and optimal speed display
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt79
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenVisitorFeatures.kt2
2 files changed, 80 insertions, 1 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt
new file mode 100644
index 000000000..1189d69cd
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt
@@ -0,0 +1,79 @@
+package at.hannibal2.skyhanni.features.garden
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.config.features.Garden
+import at.hannibal2.skyhanni.data.SendTitleHelper
+import at.hannibal2.skyhanni.events.GardenToolChangeEvent
+import at.hannibal2.skyhanni.events.GuiRenderEvent
+import at.hannibal2.skyhanni.events.TabListUpdateEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.RenderUtils.renderString
+import net.minecraft.client.Minecraft
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import java.util.regex.Pattern
+
+class GardenOptimalSpeed {
+ private val config: Garden get() = SkyHanniMod.feature.garden
+ private var currentSpeed = 100
+ private var optimalSpeed = -1
+ private val currentSpeedPattern = Pattern.compile(" Speed: §r§f✦(.*)")
+ private var lastWarnTime = 0L
+
+ @SubscribeEvent
+ fun onTabListUpdate(event: TabListUpdateEvent) {
+ for (line in event.tabList) {
+ val matcher = currentSpeedPattern.matcher(line)
+ if (matcher.matches()) {
+ currentSpeed = matcher.group(1).toInt()
+ }
+ }
+ }
+
+ @SubscribeEvent
+ fun onGardenToolChange(event: GardenToolChangeEvent) {
+ if (isEnabled()) {
+ optimalSpeed = GardenAPI.cropInHand.let { if (it != null) speedForCrop(it) else -1 }
+ }
+ }
+
+ private fun speedForCrop(crop: String) = when (crop) {
+ "Wheat" -> 93
+ "Carrot" -> 93
+ "Potato" -> 93
+ "Pumpkin" -> 155
+ "Sugar Cane" -> 328
+ "Melon" -> 155
+ "Cactus" -> 400 // 500 with racing helmet
+ "Cocoa Beans" -> 155
+ "Mushroom" -> 233
+ "Nether Wart" -> 93
+
+ else -> -1
+ }
+
+ @SubscribeEvent
+ fun onRenderOverlay(event: GuiRenderEvent.GameOverlayRenderEvent) {
+ if (!isEnabled()) return
+ if (!Minecraft.getMinecraft().thePlayer.onGround) return
+
+ if (optimalSpeed == -1) return
+
+ val text = "Optimal Speed: §f$optimalSpeed"
+ if (optimalSpeed != currentSpeed) {
+ config.optimalSpeedPos.renderString("§c$text")
+ if (config.optimalSpeedWarning) {
+ if (System.currentTimeMillis() > lastWarnTime + 20_000) {
+ lastWarnTime = System.currentTimeMillis()
+ SendTitleHelper.sendTitle("§cWrong speed!", 3_000)
+ GardenAPI.cropInHand?.let {
+ LorenzUtils.chat("§e[SkyHanni] Wrong speed for $it: §f$currentSpeed §e(§f$optimalSpeed §eis optimal)")
+ }
+ }
+ }
+ } else {
+ config.optimalSpeedPos.renderString("§a$text")
+ }
+ }
+
+ private fun isEnabled() = GardenAPI.inGarden() && config.optimalSpeedEnabled
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenVisitorFeatures.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenVisitorFeatures.kt
index 5f5b1eea5..20ee57028 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenVisitorFeatures.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenVisitorFeatures.kt
@@ -219,7 +219,7 @@ class GardenVisitorFeatures {
}
@SubscribeEvent
- fun onTick(event: TabListUpdateEvent) {
+ fun onTabListUpdate(event: TabListUpdateEvent) {
if (!isEnabled()) return
var found = false
val visitorsInTab = mutableListOf<String>()