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, MinNumberProvider, ProductNumberProvider, SumNumberProvider

public abstract class FunctionNumberProvider extends Object implements IEstimableNumberProvider
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider>
     
  • 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
    apply(net.minecraft.world.level.storage.loot.LootContext lootContext, DoubleStream childResults)
     
     
    static final <PROVIDER extends FunctionNumberProvider>
    com.mojang.serialization.MapCodec<PROVIDER>
    codec(Function<List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider>,PROVIDER> constructor)
     
    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 float
    getMaxFloat(net.minecraft.world.level.storage.loot.LootContext context)
    The maximum possible value this Number Provider can give, ignoring any randomness.

    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

    getInt, getType
  • Field Details

    • 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

    • codec

      public static final <PROVIDER extends FunctionNumberProvider> com.mojang.serialization.MapCodec<PROVIDER> codec(Function<List<net.minecraft.world.level.storage.loot.providers.number.NumberProvider>,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
    • 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
    • apply

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

      public abstract NumberEstimate applyEstimate(Stream<NumberEstimate> estimates)