Skip to content

Commit 55b54b5

Browse files
committed
datagen
1 parent 3d8ff0a commit 55b54b5

8 files changed

Lines changed: 262 additions & 0 deletions

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.devdyna.modname_id.datagen;
2+
3+
import static com.devdyna.modname_id.Main.MODID;
4+
5+
import java.util.concurrent.CompletableFuture;
6+
7+
import com.devdyna.modname_id.datagen.client.DataBlockModelState;
8+
import com.devdyna.modname_id.datagen.client.DataItemModel;
9+
import com.devdyna.modname_id.datagen.client.DataLang;
10+
import com.devdyna.modname_id.datagen.server.DataBlockTag;
11+
import com.devdyna.modname_id.datagen.server.DataItemTag;
12+
import com.devdyna.modname_id.datagen.server.DataLoot;
13+
14+
import net.minecraft.core.HolderLookup;
15+
import net.minecraft.data.DataGenerator;
16+
import net.minecraft.data.DataProvider;
17+
import net.minecraft.data.PackOutput;
18+
import net.neoforged.bus.api.SubscribeEvent;
19+
import net.neoforged.fml.common.EventBusSubscriber;
20+
import net.neoforged.neoforge.common.data.ExistingFileHelper;
21+
import net.neoforged.neoforge.data.event.GatherDataEvent;
22+
23+
@EventBusSubscriber(bus = EventBusSubscriber.Bus.MOD, modid = MODID)
24+
public class Controller {
25+
@SubscribeEvent
26+
public static void gatherData(GatherDataEvent e) {
27+
DataGenerator g = e.getGenerator();
28+
PackOutput po = g.getPackOutput();
29+
ExistingFileHelper f = e.getExistingFileHelper();
30+
CompletableFuture<HolderLookup.Provider> pr = e.getLookupProvider();
31+
32+
// client
33+
34+
providerGen(e, g, new DataBlockModelState(po, f));
35+
providerGen(e, g, new DataItemModel(po, f));
36+
providerGen(e, g, new DataLang(po));
37+
38+
// server
39+
DataBlockTag blocktag = new DataBlockTag(po, pr, f);
40+
providerGen(e, g, blocktag);
41+
providerGen(e, g, new DataItemTag(po, pr, blocktag.contentsGetter()));
42+
providerGen(e, g, new DataLoot(po, pr));
43+
44+
}
45+
46+
private static <T extends DataProvider> void providerGen(GatherDataEvent e, DataGenerator g, T f) {
47+
g.addProvider(e.includeClient(), f);
48+
}
49+
50+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.devdyna.modname_id.datagen.client;
2+
3+
import static com.devdyna.modname_id.Main.MODID;
4+
5+
import net.minecraft.data.PackOutput;
6+
import net.neoforged.neoforge.client.model.generators.BlockStateProvider;
7+
import net.neoforged.neoforge.common.data.ExistingFileHelper;
8+
9+
public class DataBlockModelState extends BlockStateProvider {
10+
11+
public DataBlockModelState(PackOutput o, ExistingFileHelper f) {
12+
super(o, MODID, f);
13+
}
14+
15+
@Override
16+
protected void registerStatesAndModels() {
17+
18+
// simpleBlock(Blocks.BK.get(),
19+
// models().getExistingFile(DataGenUtil.getResource("block/stone")));
20+
}
21+
22+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.devdyna.modname_id.datagen.client;
2+
3+
import static com.devdyna.modname_id.Main.MODID;
4+
5+
import com.devdyna.modname_id.init.types.Blocks;
6+
import com.devdyna.modname_id.init.types.Items;
7+
import com.devdyna.modname_id.utils.DataGenUtil;
8+
9+
import net.minecraft.data.PackOutput;
10+
import net.neoforged.neoforge.client.model.generators.ItemModelProvider;
11+
import net.neoforged.neoforge.common.data.ExistingFileHelper;
12+
13+
public class DataItemModel extends ItemModelProvider {
14+
15+
public DataItemModel(PackOutput o, ExistingFileHelper f) {
16+
super(o, MODID, f);
17+
}
18+
19+
@Override
20+
protected void registerModels() {
21+
22+
Items.zTool.getEntries().forEach(item -> {
23+
try {
24+
DataGenUtil.itemTool(item.get(), this);
25+
} catch (Exception e) {
26+
System.out.println(e);
27+
}
28+
});
29+
30+
Items.zItem.getEntries().forEach(item -> {
31+
32+
try {
33+
DataGenUtil.itemModel(item.get(), this);
34+
} catch (Exception e) {
35+
System.out.println(e);
36+
}
37+
38+
});
39+
40+
Blocks.zBlockItem.getEntries().forEach(block -> {
41+
try {
42+
DataGenUtil.itemBlock(block.get(), this);
43+
} catch (Exception e) {
44+
System.out.println(e);
45+
}
46+
});
47+
48+
}
49+
50+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.devdyna.modname_id.datagen.client;
2+
3+
import static com.devdyna.modname_id.Main.MODID;
4+
5+
import net.minecraft.data.PackOutput;
6+
import net.neoforged.neoforge.common.data.LanguageProvider;
7+
import net.neoforged.neoforge.registries.DeferredHolder;
8+
9+
public class DataLang extends LanguageProvider {
10+
11+
public DataLang(PackOutput o) {
12+
super(o, MODID, "en_us");
13+
}
14+
15+
@Override
16+
protected void addTranslations() {
17+
// RegistryToLang("block",Blocks.BK, "hi");
18+
// RegistryToLang("item",Items.IT, "hi");
19+
}
20+
21+
@SuppressWarnings("rawtypes")
22+
private void RegistryToLang(String type, DeferredHolder d,String text){
23+
add(type+"."+d.getRegisteredName().replace(":", "."),text);
24+
}
25+
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.devdyna.modname_id.datagen.server;
2+
3+
import java.util.concurrent.CompletableFuture;
4+
5+
import com.devdyna.modname_id.Main;
6+
import net.minecraft.core.HolderLookup.Provider;
7+
import net.minecraft.data.PackOutput;
8+
import net.neoforged.neoforge.common.data.BlockTagsProvider;
9+
import net.neoforged.neoforge.common.data.ExistingFileHelper;
10+
11+
@SuppressWarnings("null")
12+
13+
public class DataBlockTag extends BlockTagsProvider {
14+
15+
public DataBlockTag(PackOutput o, CompletableFuture<Provider> l, ExistingFileHelper f) {
16+
super(o, l, Main.MODID, f);
17+
}
18+
19+
@Override
20+
protected void addTags(Provider p) {
21+
// tag(BlockTag.LEAVES)
22+
// .addTag(BlockTags.LEAVES);
23+
24+
}
25+
26+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.devdyna.modname_id.datagen.server;
2+
3+
import java.util.concurrent.CompletableFuture;
4+
5+
import net.minecraft.core.HolderLookup.Provider;
6+
import net.minecraft.data.PackOutput;
7+
import net.minecraft.data.tags.ItemTagsProvider;
8+
import net.minecraft.world.level.block.Block;
9+
10+
@SuppressWarnings("null")
11+
12+
public class DataItemTag extends ItemTagsProvider {
13+
14+
public DataItemTag(PackOutput o, CompletableFuture<Provider> p, CompletableFuture<TagLookup<Block>> b) {
15+
super(o, p, b);
16+
}
17+
18+
@Override
19+
protected void addTags(Provider p) {
20+
// tag(ItemTag.IT)
21+
// .add(Items.ACACIA_BOAT);
22+
}
23+
24+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.devdyna.modname_id.datagen.server;
2+
3+
import java.util.List;
4+
import java.util.Set;
5+
import java.util.concurrent.CompletableFuture;
6+
7+
import com.devdyna.modname_id.datagen.server.tables.BlockDrop;
8+
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;
13+
14+
public class DataLoot extends LootTableProvider {
15+
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+
}
23+
24+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.devdyna.modname_id.datagen.server.tables;
2+
3+
import java.util.Collection;
4+
import java.util.List;
5+
import java.util.Set;
6+
7+
import com.devdyna.modname_id.init.types.Blocks;
8+
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+
15+
public class BlockDrop extends BlockLootSubProvider {
16+
17+
public BlockDrop(HolderLookup.Provider l) {
18+
super(Set.of(), FeatureFlags.DEFAULT_FLAGS, l);
19+
}
20+
21+
@Override
22+
protected Iterable<Block> getKnownBlocks() {
23+
List<Block> blocks = getList(Blocks.zBlock.getEntries());
24+
blocks.addAll(getList(Blocks.zBlockItem.getEntries()));
25+
return blocks;
26+
}
27+
28+
private List<Block> getList(Collection<DeferredHolder<Block, ? extends Block>> c) {
29+
return c.stream().map(e -> (Block) e.value()).toList();
30+
}
31+
32+
@Override
33+
protected void generate() {
34+
// dropSelf(Blocks.BK.get());
35+
36+
// Blocks.zBlock.getEntries().forEach(b -> dropSelf(b.get()));
37+
38+
}
39+
40+
}

0 commit comments

Comments
 (0)