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 FeatureFlagSetprotected final Map<ResourceKey<LootTable>, LootTable.Builder> protected static final float[]private static final float[]protected final HolderLookup.Provider -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBlockLootSubProvider(Set<Item> pExplosionResistant, FeatureFlagSet pEnabledFeatures, Map<ResourceKey<LootTable>, LootTable.Builder> pMap, HolderLookup.Provider pRegistries) protectedBlockLootSubProvider(Set<Item> pExplosionResistant, FeatureFlagSet pEnabledFeatures, HolderLookup.Provider pRegistries) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidadd(Block pBlock, Function<Block, LootTable.Builder> pFactory) protected voidadd(Block pBlock, LootTable.Builder pBuilder) protected voidaddNetherVinesDropTable(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.BuildercreateBannerDrop(Block pBlock) protected LootTable.BuildercreateBeeHiveDrop(Block pBlock) protected LootTable.BuildercreateBeeNestDrop(Block pBlock) protected static LootTable.BuildercreateCandleCakeDrops(Block pCandleCakeBlock) protected LootTable.BuildercreateCandleDrops(Block pCandleBlock) protected LootTable.BuildercreateCaveVinesDrop(Block pBlock) protected LootTable.BuildercreateCopperOreDrops(Block pBlock) protected LootTable.BuildercreateCropDrops(Block pCropBlock, Item pGrownCropItem, Item pSeedsItem, LootItemCondition.Builder pDropGrownCropCondition) IfdropGrownCropConditionfails (i.e. crop is not ready), drops 1seedsItem.protected LootTable.BuildercreateDoorTable(Block pDoorBlock) protected LootTable.BuildercreateDoublePlantShearsDrop(Block pSheared) protected LootTable.BuildercreateDoublePlantWithSeedDrops(Block pBlock, Block pSheared) protected LootTable.BuildercreateGrassDrops(Block pBlock) protected LootTable.BuildercreateLapisOreDrops(Block pBlock) protected LootTable.BuildercreateLeavesDrops(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.BuildercreateMangroveLeavesDrops(Block pBlock) protected LootTable.BuildercreateMossyCarpetBlockDrops(Block pBlock) protected LootTable.BuildercreateMultifaceBlockDrops(Block pBlock) protected LootTable.BuildercreateMultifaceBlockDrops(Block pBlock, LootItemCondition.Builder pBuilder) protected LootTable.BuildercreateMushroomBlockDrop(Block pBlock, ItemLike pItem) protected LootTable.BuildercreateNameableBlockEntityTable(Block pBlock) protected LootTable.BuildercreateOakLeavesDrops(Block pOakLeavesBlock, Block pSaplingBlock, float... pChances) Used for oak and dark oak, same as droppingWithChancesAndSticks but adding in apples.protected LootTable.BuildercreateOreDrop(Block pBlock, Item pItem) protected LootTable.BuildercreatePetalsDrops(Block pPetalBlock) protected LootTable.BuildercreatePotFlowerItemTable(ItemLike pItem) protected LootTable.BuildercreateRedstoneOreDrops(Block pBlock) protected static LootTable.BuildercreateSelfDropDispatchTable(Block pBlock, LootItemCondition.Builder pConditionBuilder, LootPoolEntryContainer.Builder<?> pAlternativeBuilder) If the condition fromconditionBuildersucceeds, drops 1block.protected LootTable.BuildercreateShearsDispatchTable(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined with Shears, drops 1block.protected LootTable.BuildercreateShearsOnlyDrop(ItemLike pItem) protected LootTable.Builderprotected LootTable.BuildercreateShulkerBoxDrop(Block pBlock) protected LootTable.BuildercreateSilkTouchDispatchTable(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined with Silk Touch, drops 1block.protected LootTable.BuildercreateSilkTouchOnlyTable(ItemLike pItem) protected LootTable.BuildercreateSilkTouchOrShearsDispatchTable(Block pBlock, LootPoolEntryContainer.Builder<?> pBuilder) If the block is mined either with Silk Touch or Shears, drops 1block.createSingleItemTable(ItemLike pItem) protected LootTable.BuildercreateSingleItemTable(ItemLike pItem, NumberProvider pCount) protected LootTable.BuildercreateSingleItemTableWithSilkTouch(Block pBlock, ItemLike pItem) protected LootTable.BuildercreateSingleItemTableWithSilkTouch(Block pBlock, ItemLike pItem, NumberProvider pCount) protected <T extends Comparable<T> & StringRepresentable>
LootTable.BuildercreateSinglePropConditionTable(Block pBlock, Property<T> pProperty, T pValue) protected LootTable.BuildercreateSlabItemTable(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.Builderprotected LootItemCondition.Builderprotected voidprotected voiddropPottedContents(Block pFlowerPot) protected voidprotected voiddropWhenSilkTouch(Block pBlock) protected abstract voidgenerate()voidgenerate(BiConsumer<ResourceKey<LootTable>, LootTable.Builder> p_249322_) protected LootItemCondition.Builderprivate LootItemCondition.Builderprotected LootItemCondition.Builderstatic LootTable.BuildernoDrop()protected voidotherWhenSilkTouch(Block pBlock, Block pOther)
-
Field Details
-
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
-
hasShears
-
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 fromconditionBuildersucceeds, 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
-
createShearsOrSilkTouchOnlyDrop
-
createMultifaceBlockDrops
protected LootTable.Builder createMultifaceBlockDrops(Block pBlock, LootItemCondition.Builder pBuilder) -
createMultifaceBlockDrops
-
createMossyCarpetBlockDrops
-
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) IfdropGrownCropConditionfails (i.e. crop is not ready), drops 1seedsItem. IfdropGrownCropConditionsucceeds (i.e. crop is ready), drops 1grownCropItem, and 0-3seedsItemwith fortune applied. -
createDoublePlantShearsDrop
-
createDoublePlantWithSeedDrops
-
createCandleDrops
-
createPetalsDrops
-
createCandleCakeDrops
-
noDrop
-
generate
protected abstract void generate() -
getKnownBlocks
-
generate
- Specified by:
generatein interfaceLootTableSubProvider
-
addNetherVinesDropTable
-
createDoorTable
-
dropPottedContents
-
otherWhenSilkTouch
-
dropOther
-
dropWhenSilkTouch
-
dropSelf
-
add
-
add
-