diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt index 41e754cf6..563f0e293 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearch.kt @@ -45,6 +45,12 @@ class AndroidResearch(val type: AndroidResearchType, val capability: MatteryPlay */ data class GatherTooltipsEvent(val research: AndroidResearch, val tooltips: MutableList) : Event() + /** + * Fired on main event bus [MinecraftForge.EVENT_BUS] + */ + @HasResult + data class ConsumeResearchCost(val research: AndroidResearch, val isSimulating: Boolean) : Event() + val ply: Player get() = capability.ply val synchronizer = FieldSynchronizer() @@ -100,6 +106,15 @@ class AndroidResearch(val type: AndroidResearchType, val capability: MatteryPlay return true } + val event = ConsumeResearchCost(this, simulate) + MinecraftForge.EVENT_BUS.post(event) + + if (event.result == Event.Result.ALLOW) { + return true + } else if (event.result == Event.Result.DENY) { + return false + } + if (!simulate && !consumeResearchCost(true)) { return false }