Class UpgradeDataProvider<T extends UpgradeBase,R extends UpgradeSerialiser<? extends T>>

java.lang.Object
dan200.computercraft.api.upgrades.UpgradeDataProvider<T,R>
Type Parameters:
T - The base class of upgrades.
R - The upgrade serialiser to register for.
All Implemented Interfaces:
net.minecraft.data.DataProvider
Direct Known Subclasses:
PocketUpgradeDataProvider, TurtleUpgradeDataProvider

public abstract class UpgradeDataProvider<T extends UpgradeBase,R extends UpgradeSerialiser<? extends T>> extends Object implements net.minecraft.data.DataProvider
A data generator/provider for turtle and pocket computer upgrades. This should not be extended directly, instead see the other subclasses.
  • Constructor Details

    • UpgradeDataProvider

      protected UpgradeDataProvider(net.minecraft.data.PackOutput output, String name, String folder, net.minecraft.resources.ResourceKey<net.minecraft.core.Registry<R>> registry)
  • Method Details

    • simple

      public final UpgradeDataProvider.Upgrade<R> simple(net.minecraft.resources.ResourceLocation id, R serialiser)
      Register an upgrade using a "simple" serialiser (e.g. TurtleUpgradeSerialiser.simple(Function)).
      Parameters:
      id - The ID of the upgrade to create.
      serialiser - The simple serialiser.
      Returns:
      The constructed upgrade, ready to be passed off to addUpgrades(Consumer)'s consumer.
    • simpleWithCustomItem

      public final UpgradeDataProvider.Upgrade<R> simpleWithCustomItem(net.minecraft.resources.ResourceLocation id, R serialiser, net.minecraft.world.item.Item item)
      Register an upgrade using a "simple" serialiser (e.g. TurtleUpgradeSerialiser.simple(Function)).
      Parameters:
      id - The ID of the upgrade to create.
      serialiser - The simple serialiser.
      item - The crafting upgrade for this item.
      Returns:
      The constructed upgrade, ready to be passed off to addUpgrades(Consumer)'s consumer.
    • addUpgrades

      protected abstract void addUpgrades(Consumer<UpgradeDataProvider.Upgrade<R>> addUpgrade)
      Add all turtle or pocket computer upgrades.

      Example usage:

      
       protected void addUpgrades(Consumer<Upgrade<TurtleUpgradeSerialiser<?>>> addUpgrade) {
           simple(new ResourceLocation("mymod", "speaker"), SPEAKER_SERIALISER.get()).add(addUpgrade);
       }
       
      Parameters:
      addUpgrade - A callback used to register an upgrade.
    • run

      public CompletableFuture<?> run(net.minecraft.data.CachedOutput cache)
      Specified by:
      run in interface net.minecraft.data.DataProvider
    • getName

      public final String getName()
      Specified by:
      getName in interface net.minecraft.data.DataProvider
    • existingSerialiser

      public final R existingSerialiser(net.minecraft.resources.ResourceLocation id)
    • getGeneratedUpgrades

      public List<T> getGeneratedUpgrades()