All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.czyzby.kiwi.util.gdx.asset.AbstractInternalAsset Maven / Gradle / Ivy

There is a newer version: 1.9.1.9.6
Show newest version
package com.github.czyzby.kiwi.util.gdx.asset;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.files.FileHandle;

/** Although Assets are advised to be kept in enums (which cannot extend, since they already do), a sample
 * implementation is provided. It can be copied to the enum implementing the asset interface.
 *
 * @author MJ */
public class AbstractInternalAsset implements Asset {
    private final String path;
    private final Class assetClass;
    private final AssetType assetType;

    public AbstractInternalAsset(final String path, final Class assetClass, final AssetType assetType) {
        this.path = path;
        this.assetClass = assetClass;
        this.assetType = assetType;
    }

    @Override
    public String getPath() {
        return path;
    }

    @Override
    public Class getAssetClass() {
        return assetClass;
    }

    @Override
    public AssetType getAssetType() {
        return assetType;
    }

    @Override
    public FileHandle getFileHandle() {
        return Gdx.files.internal(path);
    }

    @Override
    public void load(final AssetManager withManager) {
        withManager.load(path, assetClass);
    }

    @Override
    public Object get(final AssetManager fromManager) {
        return fromManager.get(path);
    }

    @Override
    public  Type get(final Class withType, final AssetManager fromManager) {
        return fromManager.get(path, withType);
    }

    @Override
    public boolean equals(final Object object) {
        return object == this || object instanceof Asset && ((Asset) object).getPath().equals(path);
    }

    @Override
    public int hashCode() {
        return path.hashCode();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy