Class AssetStore<K, T extends JsonAssetWithMap<K,M>, M extends AssetMap<K,T>>

java.lang.Object
com.hypixel.hytale.assetstore.AssetStore<K,T,M>
Direct Known Subclasses:
HytaleAssetStore

public abstract class AssetStore<K, T extends JsonAssetWithMap<K,M>, M extends AssetMap<K,T>> extends Object
Since:
10/10/18
Version:
1.0
  • Field Details

    • DISABLE_ASSET_COMPARE

      public static boolean DISABLE_ASSET_COMPARE
    • DISABLE_DYNAMIC_DEPENDENCIES

      public static boolean DISABLE_DYNAMIC_DEPENDENCIES
  • Constructor Details

    • AssetStore

      public AssetStore(@Nonnull com.hypixel.hytale.assetstore.AssetStore.Builder<K,T,M,?> builder)
  • Method Details

    • addFileMonitor

      public abstract void addFileMonitor(@Nonnull String packKey, Path path)
    • removeFileMonitor

      public abstract void removeFileMonitor(Path path)
    • getKeyClass

      @Nonnull public Class<K> getKeyClass()
    • getAssetClass

      @Nonnull public Class<T> getAssetClass()
    • getPath

      public String getPath()
    • getExtension

      @Nonnull public String getExtension()
    • getCodec

      public AssetCodec<K,T> getCodec()
    • getKeyFunction

      public Function<T,K> getKeyFunction()
    • getLoadsAfter

      @Nonnull public Set<Class<? extends JsonAsset<?>>> getLoadsAfter()
    • getAssetMap

      public M getAssetMap()
    • getReplaceOnRemove

      public Function<K,T> getReplaceOnRemove()
    • isUnmodifiable

      public boolean isUnmodifiable()
    • getPreAddedAssets

      public List<T> getPreAddedAssets()
    • hasLoadedContainedAssetsFor

      public <X extends JsonAssetWithMap> boolean hasLoadedContainedAssetsFor(Class<X> x)
    • getIdProvider

      public Class<? extends JsonAsset<?>> getIdProvider()
    • getLogger

      @Nonnull public HytaleLogger getLogger()
    • simplifyLoadBeforeDependencies

      public void simplifyLoadBeforeDependencies()
    • injectLoadsAfter

      @Deprecated public <D extends JsonAsset<?>> void injectLoadsAfter(Class<D> aClass)
      Deprecated.
    • decodeFilePathKey

      @Nullable public K decodeFilePathKey(@Nonnull Path path)
    • decodeStringKey

      @Nullable public K decodeStringKey(String key)
    • transformKey

      @Nullable public K transformKey(@Nullable Object o)
    • validate

      public void validate(@Nullable K key, @Nonnull ValidationResults results, ExtraInfo extraInfo)
    • validate

      public void validate(@Nullable K key, @Nonnull ValidationResults results, ExtraInfo extraInfo, boolean lenient)
      Validate that a referenced asset exists.
      Parameters:
      lenient - if true, a missing reference is only fatal during asset authoring. When decoding persisted world data (chunk or entity components) a missing reference is reported as a warning instead of a failure. Use this for references stored in saved data, where the defining content can be removed after the reference is persisted.
    • validateCodecDefaults

      public void validateCodecDefaults()
    • logDependencies

      public void logDependencies()
    • loadAssetsFromDirectory

      @Nonnull public AssetLoadResult<K,T> loadAssetsFromDirectory(@Nonnull String packKey, @Nonnull Path assetsPath) throws IOException
      Throws:
      IOException
    • loadAssetsFromPaths

      @Nonnull public AssetLoadResult<K,T> loadAssetsFromPaths(@Nonnull String packKey, @Nonnull List<Path> paths)
    • loadAssetsFromPaths

      @Nonnull public AssetLoadResult<K,T> loadAssetsFromPaths(@Nonnull String packKey, @Nonnull Collection<Path> paths, @Nonnull AssetUpdateQuery query)
    • loadAssetsFromPaths

      @Nonnull public AssetLoadResult<K,T> loadAssetsFromPaths(@Nonnull String packKey, @Nonnull Collection<Path> paths, @Nonnull AssetUpdateQuery query, boolean forceLoadAll)
    • loadBuffersWithKeys

      @Nonnull public AssetLoadResult<K,T> loadBuffersWithKeys(@Nonnull String packKey, @Nonnull List<RawAsset<K>> preLoaded, @Nonnull AssetUpdateQuery query, boolean forceLoadAll)
    • loadAssets

      @Nonnull public AssetLoadResult<K,T> loadAssets(@Nonnull String packKey, @Nonnull List<T> assets)
    • loadAssets

      @Nonnull public AssetLoadResult<K,T> loadAssets(@Nonnull String packKey, @Nonnull List<T> assets, @Nonnull AssetUpdateQuery query)
    • loadAssets

      @Nonnull public AssetLoadResult<K,T> loadAssets(@Nonnull String packKey, @Nonnull List<T> assets, @Nonnull AssetUpdateQuery query, boolean forceLoadAll)
    • loadAssetsWithReferences

      @Nonnull public AssetLoadResult<K,T> loadAssetsWithReferences(@Nonnull String packKey, @Nonnull Map<T, List<AssetReferences<?,?>>> assets)
    • loadAssetsWithReferences

      @Nonnull public AssetLoadResult<K,T> loadAssetsWithReferences(@Nonnull String packKey, @Nonnull Map<T, List<AssetReferences<?,?>>> assets, @Nonnull AssetUpdateQuery query)
    • loadAssetsWithReferences

      @Nonnull public AssetLoadResult<K,T> loadAssetsWithReferences(@Nonnull String packKey, @Nonnull Map<T, List<AssetReferences<?,?>>> assets, @Nonnull AssetUpdateQuery query, boolean forceLoadAll)
    • removeAssetWithPaths

      @Nonnull public Set<K> removeAssetWithPaths(@Nonnull String packKey, @Nonnull List<Path> paths)
    • removeAssetWithPaths

      @Nonnull public Set<K> removeAssetWithPaths(@Nonnull String packKey, @Nonnull List<Path> paths, @Nonnull AssetUpdateQuery assetUpdateQuery)
    • removeAssetWithPath

      @Nonnull public Set<K> removeAssetWithPath(Path path)
    • removeAssetWithPath

      @Nonnull public Set<K> removeAssetWithPath(Path path, @Nonnull AssetUpdateQuery assetUpdateQuery)
    • removeAssets

      @Nonnull public Set<K> removeAssets(@Nonnull Collection<K> keys)
    • removeAssets

      @Nonnull public Set<K> removeAssets(@Nonnull String packKey, boolean all, @Nonnull Collection<K> keys, @Nonnull AssetUpdateQuery assetUpdateQuery)
    • removeAssetPack

      public void removeAssetPack(@Nonnull String name)
    • writeAssetToDisk

      public AssetLoadResult<K,T> writeAssetToDisk(@Nonnull AssetPack pack, @Nonnull Map<Path,T> assetsByPath, boolean playerIsOwner) throws IOException
      Throws:
      IOException
    • writeAssetToDisk

      public AssetLoadResult<K,T> writeAssetToDisk(@Nonnull AssetPack pack, @Nonnull Map<Path,T> assetsByPath, @Nonnull AssetUpdateQuery query) throws IOException
      Throws:
      IOException
    • writeAssetToDisk

      public AssetLoadResult<K,T> writeAssetToDisk(@Nonnull AssetPack pack, @Nonnull Map<Path,T> assetsByPath, @Nonnull AssetUpdateQuery query, boolean playerIsOwner) throws IOException
      Throws:
      IOException
    • decode

      @Nonnull public T decode(@Nonnull String packKey, @Nonnull K key, @Nonnull org.bson.BsonDocument document)
    • addChildAssetReferences

      public <CK> void addChildAssetReferences(K parentKey, Class<? extends JsonAssetWithMap<CK,?>> childAssetClass, @Nonnull Set<CK> childKeys)
    • logUnusedKeys

      public void logUnusedKeys(@Nonnull K key, @Nullable Path assetPath, @Nonnull AssetExtraInfo<K> extraInfo)
    • toString

      @Nonnull public String toString()
      Overrides:
      toString in class Object