aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-03-06 02:47:35 +0100
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-03-06 02:47:35 +0100
commitd55832a51961aed2c185b16bec8a2fce9f811d01 (patch)
treee1548a4eb0d2d153e13f9566c9e7f3abd8d35d0e /src/main/java/at/hannibal2/skyhanni/features
parent1e24f52201a7ced89c1298c466824dcc0eb13096 (diff)
downloadskyhanni-d55832a51961aed2c185b16bec8a2fce9f811d01.tar.gz
skyhanni-d55832a51961aed2c185b16bec8a2fce9f811d01.tar.bz2
skyhanni-d55832a51961aed2c185b16bec8a2fce9f811d01.zip
Added Daedalus Axe support for garden keybinds.
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenCustomKeybinds.kt35
2 files changed, 39 insertions, 6 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt
index 9febca860..a8f8e84a8 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt
@@ -41,15 +41,19 @@ class GardenAPI {
fun getCropTypeFromItem(heldItem: ItemStack): String? {
val name = heldItem.name ?: return null
+ return getCropTypeFromItem(name)
+ }
+
+ fun getCropTypeFromItem(itemName: String): String? {
for ((crop, _) in GardenCropMilestones.cropCounter) {
- if (name.contains(crop)) {
+ if (itemName.contains(crop)) {
return crop
}
}
- if (name.contains("Coco Chopper")) {
+ if (itemName.contains("Coco Chopper")) {
return "Cocoa Beans"
}
- if (name.contains("Fungi Cutter")) {
+ if (itemName.contains("Fungi Cutter")) {
return "Mushroom"
}
return null
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCustomKeybinds.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCustomKeybinds.kt
index f80fcb0ce..7130bac5b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCustomKeybinds.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/garden/GardenCustomKeybinds.kt
@@ -3,12 +3,13 @@ package at.hannibal2.skyhanni.features.garden
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.core.config.KeybindHelper
import at.hannibal2.skyhanni.config.features.Garden
-import at.hannibal2.skyhanni.events.GardenToolChangeEvent
import at.hannibal2.skyhanni.mixins.transformers.AccessorKeyBinding
+import at.hannibal2.skyhanni.utils.ItemUtils.name
import net.minecraft.client.Minecraft
import net.minecraft.client.settings.KeyBinding
import net.minecraftforge.event.world.WorldEvent
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent
class GardenCustomKeybinds {
private val shConfig: Garden get() = SkyHanniMod.feature.garden
@@ -29,15 +30,43 @@ class GardenCustomKeybinds {
Runtime.getRuntime().addShutdownHook(Thread { reset() })
}
+ private var tick = 0
+ private var itemInHand = ""
+
@SubscribeEvent
- fun onGardenToolChange(event: GardenToolChangeEvent) {
- if (isEnabled() && GardenAPI.cropInHand != null) {
+ fun onTick(event: TickEvent.ClientTickEvent) {
+ if (event.phase != TickEvent.Phase.START) return
+ if (!GardenAPI.inGarden()) return
+ if (tick++ % 5 != 0) return
+
+ val crop = loadItemInHand()
+ if (itemInHand != crop) {
+ itemInHand = crop
+ update()
+ }
+ }
+
+ private fun update() {
+ if (isEnabled() && itemInHand != "") {
applyCustomKeybinds()
} else {
reset()
}
}
+ private fun loadItemInHand(): String {
+ val heldItem = Minecraft.getMinecraft().thePlayer.heldItem ?: return ""
+ val name = heldItem.name ?: return ""
+ if (GardenAPI.readCounter(heldItem) == -1) {
+ if (name.contains("Daedalus Axe")) {
+ return "Daedalus Axe"
+ }
+ return ""
+ }
+
+ return GardenAPI.getCropTypeFromItem(name) ?: ""
+ }
+
@SubscribeEvent
fun onWorldChange(event: WorldEvent.Load) {
reset()