tutorial:datagen_loot
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tutorial:datagen_loot [2022/11/14 19:32] – nexus-dino | tutorial:datagen_loot [2023/06/16 17:29] (current) – 1.20+ addProvider change slainlight | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | Before reading this, make sure you have a class that implements '' | + | ====== Loot Table Generation ====== |
- | To get started, make a class (or a few, you need one for blocks, chests and entities) that extends '' | + | Before reading this, make sure you've read [[datagen_setup|Getting |
+ | |||
+ | To begin, make a class (or a few, you need one for blocks, chests and entities) that extends '' | ||
==== Setting Up ==== | ==== Setting Up ==== | ||
Line 7: | Line 9: | ||
<code java> | <code java> | ||
- | private static class MyBlockLootTables extends | + | private static class MyBlockLootTables extends |
- | public MyBlockLootTables(FabricDataGenerator dataGenerator) { | + | public MyBlockLootTables(FabricDataOutput dataOutput) { |
- | | + | |
} | } | ||
| | ||
@Override | @Override | ||
- | public void accept(BiConsumer< | + | public void generate() { |
// ... | // ... | ||
} | } | ||
Line 23: | Line 25: | ||
@Override | @Override | ||
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { | public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { | ||
- | fabricDataGenerator.addProvider(MyBlockLootTables:: | + | |
+ | FabricDataGenerator.Pack myPack = fabricDataGenerator.createPack(); | ||
+ | myPack.addProvider(MyBlockLootTables:: | ||
+ | // ... | ||
} | } | ||
</ | </ | ||
+ | |||
+ | If you're using versions pre-1.20, please replace '' | ||
Let's just create a simple ore block and an item to drop from it for a block loot table. Add this to your block init or '' | Let's just create a simple ore block and an item to drop from it for a block loot table. Add this to your block init or '' | ||
Line 38: | Line 45: | ||
==== Adding Block Loot ==== | ==== Adding Block Loot ==== | ||
<code java> | <code java> | ||
- | private static class MyBlockLootTables extends | + | private static class MyBlockLootTables extends |
- | public MyBlockLootTables(FabricDataGenerator dataGenerator) { | + | public MyBlockLootTables(FabricDataOutput dataOutput) { |
- | | + | |
} | } | ||
- | + | | |
@Override | @Override | ||
- | public void accept(BiConsumer< | + | public void generate() { |
- | // The BlockLootTableGenerator class contains a behemoth of utility methods. Just take some time and go through the methods available to override. | + | |
- | | + | |
} | } | ||
} | } | ||
Line 67: | Line 73: | ||
private static class MyChestLootTables extends SimpleFabricLootTableProvider { | private static class MyChestLootTables extends SimpleFabricLootTableProvider { | ||
- | public MyChestLootGenerator(FabricDataGenerator | + | public MyChestLootGenerator(FabricDataOutput |
super(dataGenerator, | super(dataGenerator, | ||
} | } | ||
Line 86: | Line 92: | ||
@Override | @Override | ||
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { | public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) { | ||
- | fabricDataGenerator.addProvider(MyChestLootTables:: | + | |
+ | myPack.addProvider(MyChestLootTables:: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | If you're using versions pre-1.20, please replace '' |
tutorial/datagen_loot.1668454321.txt.gz · Last modified: 2022/11/14 19:32 by nexus-dino