Line 50: |
Line 50: |
| | | |
| ===The LootPool Builder=== | | ===The LootPool Builder=== |
− | This is where you actually make a loottable. You start with an empty<code>LootPool</code>and add the necessary attributes to it. | + | This is where you actually make a loottable. You start with an empty <code>LootPool</code> and add the necessary attributes to it. |
| * <code>.name</code> is used for the pool name. | | * <code>.name</code> is used for the pool name. |
| * <code>.setRolls</code> is used for the amount. | | * <code>.setRolls</code> is used for the amount. |
− | * <code>.add</code> is used to add an <code>ItemLootEntry</code>. | + | * <code>.add</code> is used to add an <code>ItemLootEntry</code>. You can have multiple entries. |
| | | |
− | An <code>ItemLootEntry</code> defines what is returned, and which functions and/or conditions are applied (see [https://minecraft.fandom.com/wiki/Loot_table Loot table] for the vanilla functions and conditions). | + | An <code>ItemLootEntry</code> defines what item is returned, and which functions and/or conditions are applied (see [https://minecraft.fandom.com/wiki/Loot_table Loot table] for the vanilla functions and conditions). |
| * <code>.lootTableItem</code> is used to define which item is returned. | | * <code>.lootTableItem</code> is used to define which item is returned. |
− | * <code>.apply</code> is used to apply a function or condition | + | * <code>.apply</code> is used to apply a function or condition. These themselves can have multiple operations. |
| | | |
| After all attributes have been added the <code>LootPool.Builder</code> can be used to make a <code>LootTable.Builder</code> of the proper <code>LootParameterSets</code>. This builder can then be added to the <code>lootTables</code> map made in the previous section (in the overwritten abstract method). | | After all attributes have been added the <code>LootPool.Builder</code> can be used to make a <code>LootTable.Builder</code> of the proper <code>LootParameterSets</code>. This builder can then be added to the <code>lootTables</code> map made in the previous section (in the overwritten abstract method). |
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> |
| LootPool.Builder builder = LootPool.lootPool() | | LootPool.Builder builder = LootPool.lootPool() |
− | .name(...)
| + | .name(...) |
− | .setRolls(...)
| + | .setRolls(...) |
− | .add(ItemLootEntry.lootTableItem(...)
| + | .add(ItemLootEntry.lootTableItem(...) |
− | .apply(Function1)
| + | .apply(Function1) |
− | .apply(Function2
| + | .apply(Function2 |
− | .options(option1)
| + | .operation(operation1) |
− | .options(option2))
| + | .operation(operation2)) |
− | );
| + | ); |
− | LootTable.lootTable().withPool(builder).setParamSet(...);
| + | LootTable.lootTable().withPool(builder).setParamSet(...); |
| </syntaxhighlight>[[Category:Data Generation]] | | </syntaxhighlight>[[Category:Data Generation]] |