Package net.minecraft.data.loot
Class BlockLootSubProvider
java.lang.Object
net.minecraft.data.loot.BlockLootSubProvider
- All Implemented Interfaces:
LootTableSubProvider
- Direct Known Subclasses:
VanillaBlockLoot
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final FeatureFlagSet
protected static final LootItemCondition.Builder
protected final Map
<ResourceKey<LootTable>, LootTable.Builder> protected static final float[]
private static final float[]
protected final HolderLookup.Provider
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
BlockLootSubProvider
(Set<Item> pExplosionResistant, FeatureFlagSet pEnabledFeatures, Map<ResourceKey<LootTable>, LootTable.Builder> pMap, HolderLookup.Provider pRegistries) protected
BlockLootSubProvider
(Set<Item> pExplosionResistant, FeatureFlagSet pEnabledFeatures, HolderLookup.Provider pRegistries) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
add
(Block pBlock, Function<Block, LootTable.Builder> pFactory) protected void
add
(Block pBlock, LootTable.Builder pBuilder) protected void
addNetherVinesDropTable
(Block pVines, Block pPlant) protected <T extends ConditionUserBuilder<T>>
TapplyExplosionCondition
(ItemLike pItem, ConditionUserBuilder<T> pConditionBuilder) protected <T extends FunctionUserBuilder<T>>
TapplyExplosionDecay
(ItemLike pItem, FunctionUserBuilder<T> pFunctionBuilder) createAttachedStemDrops
(Block pBlock, Item pItem) protected LootTable.Builder
createBannerDrop
(Block pBlock) protected LootTable.Builder
createBeeHiveDrop
(Block pBlock) protected LootTable.Builder
createBeeNestDrop
(Block pBlock) protected static LootTable.Builder
createCandleCakeDrops
(Block pCandleCakeBlock) protected LootTable.Builder
createCandleDrops
(Block pCandleBlock) protected LootTable.Builder
createCaveVinesDrop
(Block pBlock) protected LootTable.Builder
createCopperOreDrops
(Block pBlock) protected LootTable.Builder
createCropDrops
(Block pCropBlock, Item pGrownCropItem, Item pSeedsItem, LootItemCondition.Builder pDropGrownCropCondition) IfdropGrownCropCondition
fails (i.e. crop is not ready), drops 1seedsItem
.protected LootTable.Builder
createDoorTable
(Block pDoorBlock) protected LootTable.Builder
createDoublePlantShearsDrop
(Block pSheared) protected LootTable.Builder
createDoublePlantWithSeedDrops
(Block pBlock, Block pSheared) protected LootTable.Builder
createGrassDrops
(Block pBlock) protected LootTable.Builder
createLapisOreDrops
(Block pBlock) protected LootTable.Builder
createLeavesDrops
(Block pLeavesBlock, Block pSaplingBlock, float... pChances) Used for all leaves, drops self with silk touch, otherwise drops the second Block param with the passed chances for fortune levels, adding in sticks.protected LootTable.Builder
createMangroveLeavesDrops
(Block pBlock) protected LootTable.Builder
createMultifaceBlockDrops
(Block pBlock, LootItemCondition.Builder pBuilder) protected LootTable.Builder
createMushroomBlockDrop
(Block pBlock, ItemLike pItem) protected LootTable.Builder
createNameableBlockEntityTable
(Block pBlock) protected LootTable.Builder
createOakLeavesDrops
(Block pOakLeavesBlock, Block pSaplingBlock, float... pChances) Used for oak and dark oak, same as droppingWithChancesAndSticks but adding in apples.protected LootTable.Builder
createOreDrop
(Block pBlock, Item pItem) protected LootTable.Builder
createPetalsDrops
(Block pPetalBlock) protected LootTable.Builder
createPotFlowerItemTable
(ItemLike pItem) protected LootTable.Builder
createRedstoneOreDrops
(Block pBlock) protected static LootTable.Builder
createSelfDropDispatchTable
(Block pBlock, LootItemCondition.Builder pConditionBuilder, LootPoolEntryContainer.Builder<?> pAlternativeBuilder) If the condition fromconditionBuilder
succeeds, drops 1block
.protected LootTable.Builder
createShearsDispatchTable
(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined with Shears, drops 1block
.protected static LootTable.Builder
createShearsOnlyDrop
(ItemLike pItem) protected LootTable.Builder
createShulkerBoxDrop
(Block pBlock) protected LootTable.Builder
createSilkTouchDispatchTable
(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined with Silk Touch, drops 1block
.protected LootTable.Builder
createSilkTouchOnlyTable
(ItemLike pItem) protected LootTable.Builder
createSilkTouchOrShearsDispatchTable
(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined either with Silk Touch or Shears, drops 1block
.createSingleItemTable
(ItemLike pItem) protected LootTable.Builder
createSingleItemTable
(ItemLike pItem, NumberProvider pCount) protected LootTable.Builder
createSingleItemTableWithSilkTouch
(Block pBlock, ItemLike pItem) protected LootTable.Builder
createSingleItemTableWithSilkTouch
(Block pBlock, ItemLike pItem, NumberProvider pCount) protected <T extends Comparable<T> & StringRepresentable>
LootTable.BuildercreateSinglePropConditionTable
(Block pBlock, Property<T> pProperty, T pValue) protected LootTable.Builder
createSlabItemTable
(Block pBlock) createStemDrops
(Block pBlock, Item pItem) Creates a builder that drops the given IItemProvider in amounts between 0 and 3, based on the AGE property.private LootItemCondition.Builder
protected LootItemCondition.Builder
protected void
protected void
dropPottedContents
(Block pFlowerPot) protected void
protected void
dropWhenSilkTouch
(Block pBlock) protected abstract void
generate()
void
generate
(BiConsumer<ResourceKey<LootTable>, LootTable.Builder> pOutput) private LootItemCondition.Builder
protected LootItemCondition.Builder
static LootTable.Builder
noDrop()
protected void
otherWhenSilkTouch
(Block pBlock, Block pOther)
-
Field Details
-
HAS_SHEARS
-
registries
-
explosionResistant
-
enabledFeatures
-
map
-
NORMAL_LEAVES_SAPLING_CHANCES
protected static final float[] NORMAL_LEAVES_SAPLING_CHANCES -
NORMAL_LEAVES_STICK_CHANCES
private static final float[] NORMAL_LEAVES_STICK_CHANCES
-
-
Constructor Details
-
BlockLootSubProvider
protected BlockLootSubProvider(Set<Item> pExplosionResistant, FeatureFlagSet pEnabledFeatures, HolderLookup.Provider pRegistries) -
BlockLootSubProvider
protected BlockLootSubProvider(Set<Item> pExplosionResistant, FeatureFlagSet pEnabledFeatures, Map<ResourceKey<LootTable>, LootTable.Builder> pMap, HolderLookup.Provider pRegistries)
-
-
Method Details
-
hasSilkTouch
-
doesNotHaveSilkTouch
-
hasShearsOrSilkTouch
-
doesNotHaveShearsOrSilkTouch
-
applyExplosionDecay
protected <T extends FunctionUserBuilder<T>> T applyExplosionDecay(ItemLike pItem, FunctionUserBuilder<T> pFunctionBuilder) -
applyExplosionCondition
protected <T extends ConditionUserBuilder<T>> T applyExplosionCondition(ItemLike pItem, ConditionUserBuilder<T> pConditionBuilder) -
createSingleItemTable
-
createSelfDropDispatchTable
protected static LootTable.Builder createSelfDropDispatchTable(Block pBlock, LootItemCondition.Builder pConditionBuilder, LootPoolEntryContainer.Builder<?> pAlternativeBuilder) If the condition fromconditionBuilder
succeeds, drops 1block
. Otherwise, drops loot specified byalternativeBuilder
. -
createSilkTouchDispatchTable
protected LootTable.Builder createSilkTouchDispatchTable(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined with Silk Touch, drops 1block
. Otherwise, drops loot specified bybuilder
. -
createShearsDispatchTable
protected LootTable.Builder createShearsDispatchTable(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined with Shears, drops 1block
. Otherwise, drops loot specified bybuilder
. -
createSilkTouchOrShearsDispatchTable
protected LootTable.Builder createSilkTouchOrShearsDispatchTable(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined either with Silk Touch or Shears, drops 1block
. Otherwise, drops loot specified bybuilder
. -
createSingleItemTableWithSilkTouch
-
createSingleItemTable
-
createSingleItemTableWithSilkTouch
protected LootTable.Builder createSingleItemTableWithSilkTouch(Block pBlock, ItemLike pItem, NumberProvider pCount) -
createSilkTouchOnlyTable
-
createPotFlowerItemTable
-
createSlabItemTable
-
createSinglePropConditionTable
protected <T extends Comparable<T> & StringRepresentable> LootTable.Builder createSinglePropConditionTable(Block pBlock, Property<T> pProperty, T pValue) -
createNameableBlockEntityTable
-
createShulkerBoxDrop
-
createCopperOreDrops
-
createLapisOreDrops
-
createRedstoneOreDrops
-
createBannerDrop
-
createBeeNestDrop
-
createBeeHiveDrop
-
createCaveVinesDrop
-
createOreDrop
-
createMushroomBlockDrop
-
createGrassDrops
-
createStemDrops
Creates a builder that drops the given IItemProvider in amounts between 0 and 3, based on the AGE property. Only used in vanilla for pumpkin and melon stems. -
createAttachedStemDrops
-
createShearsOnlyDrop
-
createMultifaceBlockDrops
protected LootTable.Builder createMultifaceBlockDrops(Block pBlock, LootItemCondition.Builder pBuilder) -
createLeavesDrops
protected LootTable.Builder createLeavesDrops(Block pLeavesBlock, Block pSaplingBlock, float... pChances) Used for all leaves, drops self with silk touch, otherwise drops the second Block param with the passed chances for fortune levels, adding in sticks. -
createOakLeavesDrops
protected LootTable.Builder createOakLeavesDrops(Block pOakLeavesBlock, Block pSaplingBlock, float... pChances) Used for oak and dark oak, same as droppingWithChancesAndSticks but adding in apples. -
createMangroveLeavesDrops
-
createCropDrops
protected LootTable.Builder createCropDrops(Block pCropBlock, Item pGrownCropItem, Item pSeedsItem, LootItemCondition.Builder pDropGrownCropCondition) IfdropGrownCropCondition
fails (i.e. crop is not ready), drops 1seedsItem
. IfdropGrownCropCondition
succeeds (i.e. crop is ready), drops 1grownCropItem
, and 0-3seedsItem
with fortune applied. -
createDoublePlantShearsDrop
-
createDoublePlantWithSeedDrops
-
createCandleDrops
-
createPetalsDrops
-
createCandleCakeDrops
-
noDrop
-
generate
protected abstract void generate() -
getKnownBlocks
-
generate
- Specified by:
generate
in interfaceLootTableSubProvider
-
addNetherVinesDropTable
-
createDoorTable
-
dropPottedContents
-
otherWhenSilkTouch
-
dropOther
-
dropWhenSilkTouch
-
dropSelf
-
add
-
add
-