Interface SimpleResourceReloadListener<T>

Type Parameters:
T - The data object.
All Superinterfaces:
IdentifiableResourceReloadListener, ResourceReloader

public interface SimpleResourceReloadListener<T> extends IdentifiableResourceReloadListener
A simplified version of the "resource reload listener" interface, hiding the peculiarities of the API.

In essence, there are two stages:

  • load: create an instance of your data object containing all loaded and processed information,
  • apply: apply the information from the data object to the game instance.

The load stage should be self-contained as it can run on any thread! However, the apply stage is guaranteed to run on the game thread.

For a fully synchronous alternative, consider using SynchronousResourceReloader in conjunction with IdentifiableResourceReloadListener.

  • Method Details

    • reload

      default CompletableFuture<Void> reload(ResourceReloader.Synchronizer helper, ResourceManager manager, Profiler loadProfiler, Profiler applyProfiler, Executor loadExecutor, Executor applyExecutor)
      Specified by:
      reload in interface ResourceReloader
    • load

      CompletableFuture<T> load(ResourceManager manager, Profiler profiler, Executor executor)
      Asynchronously process and load resource-based data. The code must be thread-safe and not modify game state!
      Parameters:
      manager - The resource manager used during reloading.
      profiler - The profiler which may be used for this stage.
      executor - The executor which should be used for this stage.
      Returns:
      A CompletableFuture representing the "data loading" stage.
    • apply

      CompletableFuture<Void> apply(T data, ResourceManager manager, Profiler profiler, Executor executor)
      Synchronously apply loaded data to the game state.
      Parameters:
      manager - The resource manager used during reloading.
      profiler - The profiler which may be used for this stage.
      executor - The executor which should be used for this stage.
      Returns:
      A CompletableFuture representing the "data applying" stage.