|
@@ -1,65 +1,4 @@
|
|
|
# Cloth Config [  ](https://bintray.com/shedaniel/cloth-config-2/config-2/_latestVersion)
|
|
|
[Help translate ClothConfig on Crowdin!](https://crowdin.com/project/cloth-config)
|
|
|
|
|
|
-## Maven
|
|
|
-```groovy
|
|
|
-repositories {
|
|
|
- jcenter()
|
|
|
-}
|
|
|
-dependencies {
|
|
|
- 'me.shedaniel.cloth:config-2:LATEST'
|
|
|
-}
|
|
|
-```
|
|
|
-## APIs
|
|
|
-#### Config Screen v2 API
|
|
|
-Start by using `ConfigBuilder.create`, inside it you can do `getOrCreateCategory` to get the category instance. Do `addEntry` with the category instance to add an option.
|
|
|
-```java
|
|
|
-ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parentScreen).setTitle(screenTitleKey).set(setSavingRunnable);
|
|
|
-builder.getOrCreateCategory("text.category.key").addEntry(option);
|
|
|
-```
|
|
|
-
|
|
|
-To start adding fields, do `ConfigEntryBuilder.create()` to get the entry builder instance.
|
|
|
-Example to add a boolean field:
|
|
|
-```java
|
|
|
-ConfigEntryBuilder entryBuilder = ConfigEntryBuilder.create();
|
|
|
-category.addEntry(entryBuilder.startBooleanToggle("path.to.your.key", false).build());
|
|
|
-```
|
|
|
-
|
|
|
-All builtin entry builders can be found in ConfigEntryBuilder.
|
|
|
-
|
|
|
-Lastly, you can open the screen like this:
|
|
|
-```java
|
|
|
-MinecraftClient.getInstance().openScreen(builder.build());
|
|
|
-```
|
|
|
-
|
|
|
-#### Dropdown Menus
|
|
|
-Start by doing `entryBuilder.startDropdownMenu()`, the `SelectionTopCellElement` is the search bar, and `SelectionCellCreator` is the cells below.
|
|
|
-
|
|
|
-Create a `SelectionTopCellElement` with `DropdownMenuBuilder.TopCellElementBuilder.of()`, which takes three parameters:
|
|
|
-- `value`: The value of the field
|
|
|
-- `toObjectFunction`: The toObject function, turning String into T, returns null if error
|
|
|
-- `toStringFunction`: The toString function, which never returns null, affects the displayed text of your value.
|
|
|
-
|
|
|
-You can also use the premade `SelectionTopCellElement` for items and blocks.
|
|
|
-
|
|
|
-
|
|
|
-Create a `SelectionCellCreator` with `DropdownMenuBuilder.CellCreatorBuilder.of()`, which defines the cell height, the cell width, and how many cells are displayed at most.
|
|
|
-- `toStringFunction`: The toString function, which never returns null, affects the displayed text of the cell.
|
|
|
-
|
|
|
-You can also use the premade `SelectionCellCreator` for items and blocks as well.
|
|
|
-
|
|
|
-You should create your own cell creator extending the `DefaultSelectionCellCreator` to create custom cells.
|
|
|
-
|
|
|
-Do `.setSelections()` with your builder to specify the list of suggestions.
|
|
|
-
|
|
|
-This is what you should do if you got a config for items:
|
|
|
-```java
|
|
|
-entryBuilder.startDropdownMenu("Field Key",
|
|
|
- DropdownMenuBuilder.TopCellElementBuilder.ofItemObject(configItem), // This should contain your saved item instead of an apple as shown here
|
|
|
- DropdownMenuBuilder.CellCreatorBuilder.ofItemObject()
|
|
|
-)
|
|
|
- .setDefaultValue(Items.APPLE) // You should define a default value here
|
|
|
- .setSelections(Registry.ITEM.stream().collect(Collectors.toSet()))
|
|
|
- .setSaveConsumer(item -> configItem = (Item) item) // You should save it here, cast the item because Java is "smart"
|
|
|
- .build();
|
|
|
-```
|
|
|
+**[Read the wiki for API documentations](https://github.com/shedaniel/ClothConfig/wiki)**
|