diff --git a/common/src/main/kotlin/fr/username404/snowygui/Snowy.kt b/common/src/main/kotlin/fr/username404/snowygui/Snowy.kt index 10878b1..fb5a480 100644 --- a/common/src/main/kotlin/fr/username404/snowygui/Snowy.kt +++ b/common/src/main/kotlin/fr/username404/snowygui/Snowy.kt @@ -1,6 +1,6 @@ package fr.username404.snowygui -import fr.username404.snowygui.config.Configuration +import fr.username404.snowygui.config.LazyConfiguration import fr.username404.snowygui.gui.feature.ButtonImpl import fr.username404.snowygui.gui.feature.ButtonInfo import fr.username404.snowygui.misc.AddKeyMaps @@ -13,7 +13,7 @@ import java.lang.reflect.Modifier abstract class Snowy { protected fun Class<*>.isValidForButtonCollection(): Boolean = !Modifier.isAbstract(modifiers) && declaredAnnotations.any { it is ButtonInfo && !it.ignored } - private val displayInitMessage: Boolean by Configuration + private val displayInitMessage: Lazy by LazyConfiguration abstract val annotatedButtons: Lazy>> companion object { val MissingComponent: Component = translatable("MISSING_COMPONENT") @@ -36,7 +36,7 @@ abstract class Snowy { } } fun atInit() { - if (displayInitMessage) logs.info("Init point of SnowyGUI hit.") + if (displayInitMessage.value) logs.info("Init point of SnowyGUI hit.") eventsInit() } } \ No newline at end of file diff --git a/common/src/main/kotlin/fr/username404/snowygui/config/Configuration.kt b/common/src/main/kotlin/fr/username404/snowygui/config/Configuration.kt index 87a6a33..60eb9a7 100644 --- a/common/src/main/kotlin/fr/username404/snowygui/config/Configuration.kt +++ b/common/src/main/kotlin/fr/username404/snowygui/config/Configuration.kt @@ -175,3 +175,9 @@ object Configuration { operator fun setValue(ref: Any?, property: KProperty<*>, value: T) = @Suppress("DEPRECATION_ERROR") ModifiableValues.setValue(ref, property, value) } + +object LazyConfiguration { + inline operator fun getValue(ref: Any?, property: KProperty<*>): Lazy = lazy { + Configuration.getValue(ref, property); + } +} diff --git a/neoforge/src/main/kotlin/fr/username404/snowygui/forge/ForgeInit.kt b/neoforge/src/main/kotlin/fr/username404/snowygui/forge/ForgeInit.kt index 5373c02..1a5b73f 100644 --- a/neoforge/src/main/kotlin/fr/username404/snowygui/forge/ForgeInit.kt +++ b/neoforge/src/main/kotlin/fr/username404/snowygui/forge/ForgeInit.kt @@ -1,5 +1,6 @@ package fr.username404.snowygui.forge +import fr.username404.snowygui.ClickGui import fr.username404.snowygui.Snowy import fr.username404.snowygui.config.SnowyConfigScreen import fr.username404.snowygui.config.configScreenParent @@ -15,7 +16,11 @@ import net.neoforged.neoforgespi.language.ModFileScanData @Mod("snowygui") @Suppress("UNUSED_PARAMETER") class ForgeInit(container: ModContainer): Snowy() { - private fun initSetup(event: FMLClientSetupEvent) = atInit() + private fun initSetup(event: FMLClientSetupEvent) { + atInit() + ClickGui.tick() + ButtonImpl.initButtons() + } override val annotatedButtons = lazy { // Forge-specific reflection ModList.get() .allScanData diff --git a/neoforge/src/main/kotlin/fr/username404/snowygui/forge/MiscModBusHandlers.kt b/neoforge/src/main/kotlin/fr/username404/snowygui/forge/MiscModBusHandlers.kt index 4370271..457745d 100644 --- a/neoforge/src/main/kotlin/fr/username404/snowygui/forge/MiscModBusHandlers.kt +++ b/neoforge/src/main/kotlin/fr/username404/snowygui/forge/MiscModBusHandlers.kt @@ -1,18 +1,10 @@ package fr.username404.snowygui.forge -import fr.username404.snowygui.ClickGui -import fr.username404.snowygui.gui.feature.ButtonImpl import fr.username404.snowygui.misc.AddKeyMaps import net.neoforged.bus.api.SubscribeEvent import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent -import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent object MiscModBusHandlers { - @SubscribeEvent - fun handleClickGuiInit(event: RegisterMenuScreensEvent) { - ClickGui.tick() - ButtonImpl.initButtons() - } @SubscribeEvent fun handleKeys(event: RegisterKeyMappingsEvent) { AddKeyMaps.list.forEach {