Class FunctionNumberProvider

java.lang.Object
com.petrolpark.core.data.loot.numberprovider.FunctionNumberProvider
All Implemented Interfaces:
IEstimableNumberProvider, net.minecraft.world.level.storage.loot.LootContextUser, net.minecraft.world.level.storage.loot.providers.number.NumberProvider
Direct Known Subclasses:
MaxNumberProvider, MeanNumberProvider, MinNumberProvider, ProductNumberProvider, SumNumberProvider

public abstract class FunctionNumberProvider extends Object implements IEstimableNumberProvider
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider>
     
    protected static final Map<net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType,FunctionNumberProvider.Factory<?>>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    FunctionNumberProvider(List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider> children)
     
  • Method Summary

    Modifier and Type
    Method
    Description
     
    abstract float
    applyFloat(net.minecraft.world.level.storage.loot.LootContext lootContext, DoubleStream childResults)
     
    abstract int
    applyInt(net.minecraft.world.level.storage.loot.LootContext lootContext, IntStream childResults)
     
    static final <PROVIDER extends FunctionNumberProvider>
    com.mojang.serialization.MapCodec<PROVIDER>
    codec(FunctionNumberProvider.Factory<PROVIDER> constructor)
     
    get(net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType type)
     
    List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider>
     
    A rough estimate for the output of this Number Provider, for display purposes only.
    final float
    getFloat(net.minecraft.world.level.storage.loot.LootContext lootContext)
     
    final int
    getInt(net.minecraft.world.level.storage.loot.LootContext lootContext)
     
    final float
    getMaxFloat(net.minecraft.world.level.storage.loot.LootContext context)
    The maximum possible value this Number Provider can give, ignoring any randomness.
    static final com.mojang.serialization.DataResult<net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType>
    isFunction(net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType type)
     
    static final void
    register(net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType type, FunctionNumberProvider.Factory<?> constructor)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface net.minecraft.world.level.storage.loot.LootContextUser

    getReferencedContextParams, validate

    Methods inherited from interface net.minecraft.world.level.storage.loot.providers.number.NumberProvider

    getType
  • Field Details

    • FACTORIES

      protected static final Map<net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType,FunctionNumberProvider.Factory<?>> FACTORIES
    • children

      protected final List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider> children
  • Constructor Details

    • FunctionNumberProvider

      public FunctionNumberProvider(List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider> children)
  • Method Details

    • register

      public static final void register(net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType type, FunctionNumberProvider.Factory<?> constructor)
    • get

      public static final FunctionNumberProvider.Factory<?> get(net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType type)
    • isFunction

      public static final com.mojang.serialization.DataResult<net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType> isFunction(net.minecraft.world.level.storage.loot.providers.number.LootNumberProviderType type)
    • codec

      public static final <PROVIDER extends FunctionNumberProvider> com.mojang.serialization.MapCodec<PROVIDER> codec(FunctionNumberProvider.Factory<PROVIDER> constructor)
    • getChildren

      public List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider> getChildren()
    • getFloat

      public final float getFloat(@Nonnull net.minecraft.world.level.storage.loot.LootContext lootContext)
      Specified by:
      getFloat in interface net.minecraft.world.level.storage.loot.providers.number.NumberProvider
    • getInt

      public final int getInt(@Nonnull net.minecraft.world.level.storage.loot.LootContext lootContext)
      Specified by:
      getInt in interface net.minecraft.world.level.storage.loot.providers.number.NumberProvider
    • getEstimate

      public final NumberEstimate getEstimate()
      Description copied from interface: IEstimableNumberProvider
      A rough estimate for the output of this Number Provider, for display purposes only.
      Specified by:
      getEstimate in interface IEstimableNumberProvider
    • getMaxFloat

      public final float getMaxFloat(net.minecraft.world.level.storage.loot.LootContext context)
      Description copied from interface: IEstimableNumberProvider
      The maximum possible value this Number Provider can give, ignoring any randomness.
      Specified by:
      getMaxFloat in interface IEstimableNumberProvider
    • applyFloat

      public abstract float applyFloat(net.minecraft.world.level.storage.loot.LootContext lootContext, DoubleStream childResults)
    • applyInt

      public abstract int applyInt(net.minecraft.world.level.storage.loot.LootContext lootContext, IntStream childResults)
    • applyEstimate

      public abstract NumberEstimate applyEstimate(Stream<NumberEstimate> estimates)