Skip to content

Commit f41c222

Browse files
committed
optimized loot provider
1 parent 2141a52 commit f41c222

File tree

3 files changed

+43
-62
lines changed

3 files changed

+43
-62
lines changed

src/main/java/com/devdyna/modname_id/datagen/Controller.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@
44

55
import java.util.concurrent.CompletableFuture;
66

7+
import java.util.List;
8+
import java.util.Set;
9+
import net.minecraft.data.PackOutput;
10+
import net.minecraft.data.loot.LootTableProvider;
11+
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
712
import com.devdyna.modname_id.datagen.client.DataBlockModelState;
813
import com.devdyna.modname_id.datagen.client.DataItemModel;
914
import com.devdyna.modname_id.datagen.client.DataLang;
1015
import com.devdyna.modname_id.datagen.server.DataBlockTag;
1116
import com.devdyna.modname_id.datagen.server.DataItemTag;
1217
import com.devdyna.modname_id.datagen.server.DataLoot;
1318
import com.devdyna.modname_id.datagen.server.DataRecipe;
14-
1519
import net.minecraft.core.HolderLookup;
1620
import net.minecraft.data.DataGenerator;
1721
import net.minecraft.data.DataProvider;
18-
import net.minecraft.data.PackOutput;
1922
import net.neoforged.bus.api.SubscribeEvent;
2023
import net.neoforged.fml.common.EventBusSubscriber;
2124
import net.neoforged.neoforge.common.data.ExistingFileHelper;
@@ -40,7 +43,11 @@ public static void gatherData(GatherDataEvent e) {
4043
DataBlockTag blocktag = new DataBlockTag(po, pr, f);
4144
providerGen(e, g, blocktag);
4245
providerGen(e, g, new DataItemTag(po, pr, blocktag.contentsGetter()));
43-
providerGen(e, g, new DataLoot(po, pr));
46+
providerGen(e, g, new LootTableProvider(po, Set.of(),
47+
List.of(
48+
// list of any loot table entries inside ./server/tables/
49+
new LootTableProvider.SubProviderEntry(DataLoot::new, LootContextParamSets.BLOCK)),
50+
pr));
4451
providerGen(e, g, new DataRecipe(po, pr));
4552

4653
}
Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,43 @@
11
package com.devdyna.modname_id.datagen.server;
22

3+
import java.util.ArrayList;
34
import java.util.List;
45
import java.util.Set;
5-
import java.util.concurrent.CompletableFuture;
66

7-
import com.devdyna.modname_id.datagen.server.tables.BlockDrop;
7+
import com.devdyna.modname_id.init.types.zBlocks;
88

9-
import net.minecraft.core.HolderLookup.Provider;
10-
import net.minecraft.data.PackOutput;
11-
import net.minecraft.data.loot.LootTableProvider;
12-
import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets;
9+
import net.minecraft.core.HolderLookup;
10+
import net.minecraft.data.loot.BlockLootSubProvider;
11+
import net.minecraft.world.flag.FeatureFlags;
12+
import net.minecraft.world.level.block.Block;
13+
import net.neoforged.neoforge.registries.DeferredHolder;
14+
import net.neoforged.neoforge.registries.DeferredRegister;
1315

14-
public class DataLoot extends LootTableProvider {
16+
public class DataLoot extends BlockLootSubProvider {
1517

16-
public DataLoot(PackOutput o, CompletableFuture<Provider> r) {
17-
super(o, Set.of(),
18-
List.of(
19-
//list of any loot table entries inside ./server/tables/
20-
new LootTableProvider.SubProviderEntry(BlockDrop::new, LootContextParamSets.BLOCK)),
21-
r);
22-
}
18+
public DataLoot(HolderLookup.Provider l) {
19+
super(Set.of(), FeatureFlags.DEFAULT_FLAGS, l);
20+
}
21+
22+
@Override
23+
protected Iterable<Block> getKnownBlocks() {
24+
List<Block> blocks = new ArrayList<>();
25+
blocks.addAll(getList(zBlocks.zBlock));
26+
blocks.addAll(getList(zBlocks.zBlockItem));
27+
return blocks;
28+
}
29+
30+
@SuppressWarnings("unchecked")
31+
private List<Block> getList(DeferredRegister.Blocks c) {
32+
return (List<Block>) c.getEntries().stream().map(DeferredHolder::get).toList();
33+
}
34+
35+
@Override
36+
protected void generate() {
37+
// dropSelf(Blocks.BK.get());
38+
39+
// Blocks.zBlock.getEntries().forEach(b -> dropSelf(b.get()));
40+
41+
}
2342

2443
}

src/main/java/com/devdyna/modname_id/datagen/server/tables/BlockDrop.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)