From 81ff04e0ad56b9f197bb9617d414e3dbf5331eca Mon Sep 17 00:00:00 2001 From: inglettronald Date: Fri, 9 Jun 2023 00:17:02 -0500 Subject: initial commit --- .../kotlin/com/dulkirfabric/config/ListHelper.kt | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/main/kotlin/com/dulkirfabric/config/ListHelper.kt (limited to 'src') diff --git a/src/main/kotlin/com/dulkirfabric/config/ListHelper.kt b/src/main/kotlin/com/dulkirfabric/config/ListHelper.kt new file mode 100644 index 0000000..b99787f --- /dev/null +++ b/src/main/kotlin/com/dulkirfabric/config/ListHelper.kt @@ -0,0 +1,47 @@ +package com.dulkirfabric.config + +import me.shedaniel.clothconfig2.api.AbstractConfigListEntry +import me.shedaniel.clothconfig2.api.ConfigEntryBuilder +import me.shedaniel.clothconfig2.gui.entries.MultiElementListEntry +import me.shedaniel.clothconfig2.gui.entries.NestedListListEntry +import net.minecraft.text.Text +import java.util.* +import kotlin.reflect.KMutableProperty0 + +object ListHelper { + fun mkConfigList( + name: Text, + property: KMutableProperty0>, + newT: () -> T, + elementName: Text, + render: (T) -> List>, + canDelete: Boolean = true, + ): NestedListListEntry> { + return NestedListListEntry>( + name, // field name + property.get(), // value + false, // defaultExpanded + { Optional.empty() }, // tooltipSupplier + { property.set(it) }, // saveConsumer + { mutableListOf() }, // defaultValue + Text.literal("Reset"), // resetButtonKey + canDelete, + false, + { value, entry -> // createNewCell + val value = value ?: newT() + MultiElementListEntry(elementName, value, render(value), true) + } + ) + } + + object Holder { + var macros = listOf(DulkirConfig.Macro(-1, "Hello World")) + } + + fun ConfigEntryBuilder.mkStringField(text: Text, prop: KMutableProperty0) = startStrField(text, prop.get()) + .setSaveConsumer { prop.set(it) } + .build() + fun ConfigEntryBuilder.mkIntField(text: Text, prop: KMutableProperty0) = startIntField(text, prop.get()) + .setSaveConsumer { prop.set(it) } + .build() +} \ No newline at end of file -- cgit