38 lines
1.5 KiB
Kotlin
38 lines
1.5 KiB
Kotlin
package fr.username404.snowygui
|
|
|
|
import fr.username404.snowygui.EventSnowy.Companion.useKey
|
|
import fr.username404.snowygui.config.Configuration
|
|
import fr.username404.snowygui.gui.feature.ButtonImpl
|
|
import fr.username404.snowygui.gui.feature.Ignored
|
|
import fr.username404.snowygui.misc.AddKeyMaps
|
|
import net.minecraft.network.chat.TranslatableComponent
|
|
import org.apache.logging.log4j.LogManager
|
|
import org.apache.logging.log4j.Logger
|
|
import java.lang.reflect.Modifier
|
|
|
|
abstract class Snowy {
|
|
protected fun Class<*>.isValidForButtonCollection(): Boolean = (!((Modifier.isAbstract(javaClass.modifiers)) || javaClass.isAnnotationPresent(Ignored::class.java)))
|
|
private val displayInitMessage: Boolean by Configuration
|
|
companion object {
|
|
val MissingComponent: TranslatableComponent = object: TranslatableComponent(null) { override fun getString(): String = "MISSING_COMPONENT" }
|
|
@JvmStatic
|
|
protected val FeaturePackage: String = "fr.username404.snowygui.gui.feature"
|
|
lateinit var annotatedButtons: Set<Class<out ButtonImpl>>
|
|
fun onEvent(e: String, lambda: argsLambda) = useKey(e).add(lambda)
|
|
@JvmField
|
|
val logs: Logger = LogManager.getLogger()
|
|
}
|
|
private fun eventsInit() {
|
|
onEvent("EndTick") {
|
|
for (Key in AddKeyMaps.list.keys) {
|
|
if (Key.isDown) {
|
|
AddKeyMaps.list[Key]?.invoke()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
fun atInit() {
|
|
if (displayInitMessage) logs.info("Init point of SnowyGUI hit.")
|
|
eventsInit()
|
|
}
|
|
} |