Class LootTable
java.lang.Object
net.minecraft.world.level.storage.loot.LootTable
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BiFunction<ItemStack, LootContext, ItemStack> static final com.mojang.serialization.Codec<Optional<WithConditions<LootTable>>> static final ContextKeySetstatic final com.mojang.serialization.Codec<LootTable> static final LootTableprivate final List<LootItemFunction> private booleanstatic final com.mojang.serialization.Codec<ResourceKey<LootTable>> private static final org.slf4j.Loggerprivate ResourceLocationprivate final ContextKeySetstatic final longprivate final Optional<ResourceLocation> -
Constructor Summary
ConstructorsConstructorDescriptionLootTable(ContextKeySet pParamSet, Optional<ResourceLocation> pRandomSequence, List<LootPool> pPools, List<LootItemFunction> pFunctions) -
Method Summary
Modifier and TypeMethodDescriptionvoidprivate voidcreateStackSplitter(ServerLevel pLevel, Consumer<ItemStack> pOutput) voidfill(Container pContainer, LootParams pParams, long pSeed) voidfreeze()getAvailableSlots(Container pInventory, RandomSource pRandom) @Nullable LootPoolprivate it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> getRandomItems(LootContext pContext) Generate random items to a List.voidgetRandomItems(LootContext pContextData, Consumer<ItemStack> pOutput) Generate random items to the given Consumer, ensuring they do not exceed their maximum stack size.it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> getRandomItems(LootParams pParams) it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> getRandomItems(LootParams pParams, long pSeed) voidgetRandomItems(LootParams pParams, long pSeed, Consumer<ItemStack> pOutput) voidgetRandomItems(LootParams pParams, Consumer<ItemStack> pOutput) it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> getRandomItems(LootParams pParams, RandomSource pRandom) voidgetRandomItemsRaw(LootContext pContext, Consumer<ItemStack> pOutput) Deprecated.voidgetRandomItemsRaw(LootParams pParams, Consumer<ItemStack> pOutput) Deprecated.booleanisFrozen()static LootTable.Builder@Nullable LootPoolremovePool(String name) voidprivate voidshuffleAndSplitItems(it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> pStacks, int pEmptySlotsCount, RandomSource pRandom) Shuffles items by changing their order and splitting stacksvoidvalidate(ValidationContext pValidator) Validate this LootTable using the given ValidationContext.
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
KEY_CODEC
-
DEFAULT_PARAM_SET
-
RANDOMIZE_SEED
public static final long RANDOMIZE_SEED- See Also:
-
DIRECT_CODEC
-
CONDITIONAL_DIRECT_CODEC
public static final com.mojang.serialization.Codec<Optional<WithConditions<LootTable>>> CONDITIONAL_DIRECT_CODEC -
CODEC
-
EMPTY
-
paramSet
-
randomSequence
-
pools
-
functions
-
compositeFunction
-
isFrozen
private boolean isFrozen -
lootTableId
-
-
Constructor Details
-
LootTable
LootTable(ContextKeySet pParamSet, Optional<ResourceLocation> pRandomSequence, List<LootPool> pPools, List<LootItemFunction> pFunctions)
-
-
Method Details
-
createStackSplitter
public static Consumer<ItemStack> createStackSplitter(ServerLevel pLevel, Consumer<ItemStack> pOutput) -
getRandomItemsRaw
Deprecated. -
getRandomItemsRaw
Deprecated.Generate items to the given Consumer, ignoring maximum stack size. -
getRandomItems
-
getRandomItems
-
getRandomItems
Generate random items to the given Consumer, ensuring they do not exceed their maximum stack size. -
getRandomItems
public it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> getRandomItems(LootParams pParams, RandomSource pRandom) -
getRandomItems
public it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> getRandomItems(LootParams pParams, long pSeed) -
getRandomItems
-
getRandomItems
private it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> getRandomItems(LootContext pContext) Generate random items to a List. -
getParamSet
-
validate
Validate this LootTable using the given ValidationContext. -
fill
-
shuffleAndSplitItems
private void shuffleAndSplitItems(it.unimi.dsi.fastutil.objects.ObjectArrayList<ItemStack> pStacks, int pEmptySlotsCount, RandomSource pRandom) Shuffles items by changing their order and splitting stacks -
getAvailableSlots
-
lootTable
-
freeze
public void freeze() -
isFrozen
public boolean isFrozen() -
checkFrozen
private void checkFrozen() -
setLootTableId
-
getLootTableId
-
getPool
-
removePool
-
addPool
-