diff options
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/GardenComposterUpgradesData.kt | 30 | ||||
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/data/model/ComposterUpgrade.kt | 18 |
2 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/GardenComposterUpgradesData.kt b/src/main/java/at/hannibal2/skyhanni/data/GardenComposterUpgradesData.kt new file mode 100644 index 000000000..126cd52ea --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/GardenComposterUpgradesData.kt @@ -0,0 +1,30 @@ +package at.hannibal2.skyhanni.data + +import at.hannibal2.skyhanni.data.model.ComposterUpgrade +import at.hannibal2.skyhanni.events.InventoryOpenEvent +import at.hannibal2.skyhanni.features.garden.GardenAPI +import at.hannibal2.skyhanni.features.garden.composter.ComposterAPI +import at.hannibal2.skyhanni.utils.ItemUtils.name +import at.hannibal2.skyhanni.utils.NumberUtil.romanToDecimalIfNeeded +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class GardenComposterUpgradesData { + + @SubscribeEvent + fun onInventoryOpen(event: InventoryOpenEvent) { + if (!GardenAPI.inGarden()) return + if (event.inventoryName != "Composter Upgrades") return + for (item in event.inventoryItems.values) { + val itemName = item.name ?: continue + val matcher = ComposterUpgrade.regex.matcher(itemName) + if (!matcher.matches()) continue + + if (matcher.groupCount() != 0) { + val name = matcher.group("name") + val level = matcher.group("level")?.romanToDecimalIfNeeded() ?: 0 + val composterUpgrade = ComposterUpgrade.getByName(name)!! + ComposterAPI.composterUpgrades[composterUpgrade] = level + } + } + } +}
\ No newline at end of file diff --git a/src/main/java/at/hannibal2/skyhanni/data/model/ComposterUpgrade.kt b/src/main/java/at/hannibal2/skyhanni/data/model/ComposterUpgrade.kt new file mode 100644 index 000000000..83a106ca8 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/data/model/ComposterUpgrade.kt @@ -0,0 +1,18 @@ +package at.hannibal2.skyhanni.data.model + +enum class ComposterUpgrade(val displayName: String) { + COMPOSTER_SPEED("Composter Speed"), + ORGANIC_MATTER_CAP("Organic Matter Cap"), + MULTI_DROP("Multi Drop"), + COST_REDUCTION("Cost Reduction"), + FUEL_CAP("Fuel Cap"), + ; + + companion object { + private fun regexValues() = values().joinToString("|") { it.displayName } + + val regex = "§a(?<name>${regexValues()})(?: (?<level>.*))?".toPattern() + + fun getByName(name: String) = values().firstOrNull { it.displayName == name } + } +}
\ No newline at end of file |
