Add per compat project event listeners
[no changelog]
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
|
||||
|
||||
package moe.nea.firmament.features
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.serializer
|
||||
import moe.nea.firmament.Firmament
|
||||
import moe.nea.firmament.annotations.generated.AllSubscriptions
|
||||
import moe.nea.firmament.events.FeaturesInitializedEvent
|
||||
import moe.nea.firmament.events.FirmamentEvent
|
||||
import moe.nea.firmament.events.subscription.Subscription
|
||||
import moe.nea.firmament.events.subscription.SubscriptionList
|
||||
import moe.nea.firmament.features.chat.AutoCompletions
|
||||
import moe.nea.firmament.features.chat.ChatLinks
|
||||
import moe.nea.firmament.features.chat.QuickCommands
|
||||
@@ -88,13 +86,15 @@ object FeatureManager : DataHolder<FeatureManager.Config>(serializer(), "feature
|
||||
}
|
||||
|
||||
fun subscribeEvents() {
|
||||
AllSubscriptions.provideSubscriptions {
|
||||
subscribeSingleEvent(it)
|
||||
SubscriptionList.allLists.forEach {
|
||||
it.provideSubscriptions {
|
||||
subscribeSingleEvent(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun <T : FirmamentEvent> subscribeSingleEvent(it: Subscription<T>) {
|
||||
it.eventBus.subscribe(false, it.invoke)
|
||||
it.eventBus.subscribe(false, "${it.owner.javaClass.simpleName}:${it.methodName}", it.invoke)
|
||||
}
|
||||
|
||||
fun loadFeature(feature: FirmamentFeature) {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
package moe.nea.firmament.features.debug
|
||||
|
||||
import moe.nea.firmament.Firmament
|
||||
import moe.nea.firmament.annotations.Subscribe
|
||||
import moe.nea.firmament.events.TickEvent
|
||||
import moe.nea.firmament.features.FirmamentFeature
|
||||
import moe.nea.firmament.util.TimeMark
|
||||
@@ -25,14 +26,4 @@ object DebugView : FirmamentFeature {
|
||||
}
|
||||
}
|
||||
|
||||
fun recalculateDebugWidget() {
|
||||
}
|
||||
|
||||
override fun onLoad() {
|
||||
TickEvent.subscribe {
|
||||
synchronized(this) {
|
||||
recalculateDebugWidget()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ package moe.nea.firmament.features.debug
|
||||
|
||||
import net.minecraft.block.SkullBlock
|
||||
import net.minecraft.block.entity.SkullBlockEntity
|
||||
import net.minecraft.client.gui.screen.Screen
|
||||
import net.minecraft.component.DataComponentTypes
|
||||
import net.minecraft.entity.Entity
|
||||
import net.minecraft.entity.LivingEntity
|
||||
@@ -54,15 +55,16 @@ object PowerUserTools : FirmamentFeature {
|
||||
}
|
||||
var lastCopiedStackViewTime = false
|
||||
|
||||
override fun onLoad() {
|
||||
TickEvent.subscribe {
|
||||
if (!lastCopiedStackViewTime)
|
||||
lastCopiedStack = null
|
||||
lastCopiedStackViewTime = false
|
||||
}
|
||||
ScreenChangeEvent.subscribe {
|
||||
@Subscribe
|
||||
fun resetLastCopiedStack(event: TickEvent) {
|
||||
if (!lastCopiedStackViewTime)
|
||||
lastCopiedStack = null
|
||||
}
|
||||
lastCopiedStackViewTime = false
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun resetLastCopiedStackOnScreenChange(event: ScreenChangeEvent) {
|
||||
lastCopiedStack = null
|
||||
}
|
||||
|
||||
fun debugFormat(itemStack: ItemStack): Text {
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
|
||||
package moe.nea.firmament.features.diana
|
||||
|
||||
import moe.nea.firmament.annotations.Subscribe
|
||||
import moe.nea.firmament.events.AttackBlockEvent
|
||||
import moe.nea.firmament.events.ParticleSpawnEvent
|
||||
import moe.nea.firmament.events.ProcessChatEvent
|
||||
import moe.nea.firmament.events.SoundReceiveEvent
|
||||
import moe.nea.firmament.events.UseBlockEvent
|
||||
import moe.nea.firmament.events.WorldKeyboardEvent
|
||||
import moe.nea.firmament.events.WorldReadyEvent
|
||||
import moe.nea.firmament.events.WorldRenderLastEvent
|
||||
import moe.nea.firmament.features.FirmamentFeature
|
||||
import moe.nea.firmament.gui.config.ManagedConfig
|
||||
|
||||
@@ -22,13 +16,15 @@ object DianaWaypoints : FirmamentFeature {
|
||||
val nearbyWaypoints by toggle("nearby-waypoints") { true }
|
||||
}
|
||||
|
||||
override fun onLoad() {
|
||||
UseBlockEvent.subscribe {
|
||||
NearbyBurrowsSolver.onBlockClick(it.hitResult.blockPos)
|
||||
}
|
||||
AttackBlockEvent.subscribe {
|
||||
NearbyBurrowsSolver.onBlockClick(it.blockPos)
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun onBlockUse(event: UseBlockEvent) {
|
||||
NearbyBurrowsSolver.onBlockClick(event.hitResult.blockPos)
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun onBlockAttack(event: AttackBlockEvent) {
|
||||
NearbyBurrowsSolver.onBlockClick(event.blockPos)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -168,7 +168,11 @@ object CustomBlockTextures {
|
||||
}
|
||||
|
||||
private val sodiumReloadTask = runCatching {
|
||||
Class.forName("moe.nea.firmament.compat.sodium.SodiumChunkReloader").getConstructor().newInstance() as Runnable
|
||||
val r = Class.forName("moe.nea.firmament.compat.sodium.SodiumChunkReloader")
|
||||
.getConstructor()
|
||||
.newInstance() as Runnable
|
||||
r.run()
|
||||
r
|
||||
}.getOrElse {
|
||||
if (FabricLoader.getInstance().isModLoaded("sodium"))
|
||||
logger.error("Could not create sodium chunk reloader")
|
||||
@@ -192,7 +196,9 @@ object CustomBlockTextures {
|
||||
|
||||
@JvmStatic
|
||||
fun getReplacement(block: BlockState, blockPos: BlockPos?): Replacement? {
|
||||
if (isInFallback() && blockPos == null) return null
|
||||
if (isInFallback() && blockPos == null) {
|
||||
return null
|
||||
}
|
||||
val replacements = currentIslandReplacements?.lookup?.get(block.block) ?: return null
|
||||
for (replacement in replacements) {
|
||||
if (replacement.checks == null || matchesPosition(replacement, blockPos))
|
||||
|
||||
Reference in New Issue
Block a user