Skip to content

Commit

Permalink
pog auto separators
Browse files Browse the repository at this point in the history
  • Loading branch information
KrLite committed Mar 12, 2024
1 parent 933480e commit ac4ddec
Showing 1 changed file with 26 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import net.krlite.knowledges.KnowledgesCommon;
import net.krlite.knowledges.api.data.Data;
import net.krlite.knowledges.api.component.Knowledge;
import net.krlite.knowledges.api.data.transfer.DataInvoker;
import net.krlite.knowledges.api.data.transfer.DataProtocol;
import net.krlite.knowledges.api.proxy.ModProxy;
import net.krlite.knowledges.config.modmenu.impl.EmptyEntryBuilder;
import net.krlite.knowledges.config.modmenu.impl.KnowledgesConfigBuilder;
Expand All @@ -27,6 +29,7 @@

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

@SuppressWarnings("UnstableApiUsage")
public class KnowledgesConfigScreen {
Expand Down Expand Up @@ -240,7 +243,7 @@ private void initDataEntries() {

ArrayList<AbstractConfigListEntry> entries = new ArrayList<>();

map.forEach((component, data) -> {
map.forEach((component, dataList) -> {
entries.add(
entryBuilder.startTextDescription(Text.translatable(
localizationKey("data", "classifier"),
Expand All @@ -251,16 +254,28 @@ private void initDataEntries() {
))
.build()
);
entries.addAll(
data.stream()
.map(d -> {
var built = dataEntry(d, true).build();
BooleanListEntrySyncHelper.DATA.register(d, built);

return (AbstractConfigListEntry) built;
})
.toList()
);

Map<DataInvoker<?, ?>, List<Data<?>>> dataInvokerClassified = dataList.stream()
.collect(Collectors.groupingBy(DataProtocol::dataInvoker));
var iterator = dataInvokerClassified.values().iterator();

while (iterator.hasNext()) {
var dataListSegment = iterator.next();
entries.addAll(
dataListSegment.stream()
.map(data -> {
var built = dataEntry(data, true).build();
BooleanListEntrySyncHelper.DATA.register(data, built);

return (AbstractConfigListEntry) built;
})
.toList()
);

if (iterator.hasNext()) {
entries.add(emptyEntryBuilder().build());
}
}
});

category.addEntry(entryBuilder.startSubCategory(name, entries)
Expand Down

0 comments on commit ac4ddec

Please sign in to comment.