Config test

This commit is contained in:
DBotThePony 2022-09-17 01:18:44 +07:00
parent ffb3d651b0
commit bab6447a1d
Signed by: DBot
GPG Key ID: DCC23B5715498507
3 changed files with 52 additions and 2 deletions

View File

@ -8,7 +8,9 @@ import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
@ -87,6 +89,8 @@ public final class OverdriveThatMatters {
modBus.addListener(EventPriority.HIGHEST, this::setup); modBus.addListener(EventPriority.HIGHEST, this::setup);
modBus.addListener(EventPriority.NORMAL, this::setupClient); modBus.addListener(EventPriority.NORMAL, this::setupClient);
modBus.addListener(EventPriority.NORMAL, MatteryCapability::register); modBus.addListener(EventPriority.NORMAL, MatteryCapability::register);
ClientConfig.INSTANCE.register();
} }
private void setup(final FMLCommonSetupEvent event) { private void setup(final FMLCommonSetupEvent event) {

View File

@ -0,0 +1,45 @@
@file:Suppress("ObjectPropertyName")
package ru.dbotthepony.mc.otm
import net.minecraftforge.common.ForgeConfigSpec
import net.minecraftforge.common.ForgeConfigSpec.IntValue
import net.minecraftforge.fml.ModLoadingContext
import net.minecraftforge.fml.config.ModConfig
import kotlin.reflect.KProperty
object ClientConfig {
private val spec: ForgeConfigSpec
private var registered = false
private val _exosuitInventoryRows: IntValue
init {
val specBuilder = ForgeConfigSpec.Builder()
specBuilder.comment("Clientside Config").push("client")
_exosuitInventoryRows = specBuilder
.comment("Amount of inventory rows to show when wearing Exosuit")
.defineInRange("exosuitInventoryRows", 3, 3, 6)
specBuilder.pop()
spec = specBuilder.build()
}
var exosuitInventoryRows: Int by _exosuitInventoryRows
fun register() {
check(!registered) { "Already registered config" }
registered = true
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, spec)
}
}
private operator fun <T> ForgeConfigSpec.ConfigValue<T>.setValue(config: ClientConfig, property: KProperty<*>, value: T) {
set(value)
}
private operator fun <T : Any> ForgeConfigSpec.ConfigValue<T>.getValue(config: Any, property: KProperty<*>): T {
return get()
}

View File

@ -16,6 +16,7 @@ import net.minecraftforge.client.event.ContainerScreenEvent.Render.Foreground
import net.minecraftforge.common.MinecraftForge import net.minecraftforge.common.MinecraftForge
import org.lwjgl.opengl.GL11 import org.lwjgl.opengl.GL11
import org.lwjgl.opengl.GL13 import org.lwjgl.opengl.GL13
import ru.dbotthepony.mc.otm.ClientConfig
import ru.dbotthepony.mc.otm.client.moveMousePosScaled import ru.dbotthepony.mc.otm.client.moveMousePosScaled
import ru.dbotthepony.mc.otm.client.screen.panels.* import ru.dbotthepony.mc.otm.client.screen.panels.*
import ru.dbotthepony.mc.otm.core.maxScrollDivision import ru.dbotthepony.mc.otm.core.maxScrollDivision
@ -552,6 +553,6 @@ abstract class MatteryScreen<T : MatteryMenu>(menu: T, inventory: Inventory, tit
const val MAX_ROWS = 6 const val MAX_ROWS = 6
var lastScroll = 0 var lastScroll = 0
var lastRows = 3 var lastRows by ClientConfig::exosuitInventoryRows
} }
} }