SimpleJavaEngine/src/main/java/speiger/src/coreengine/assets/impl/FolderAssetPackage.java

48 lines
1.1 KiB
Java

package speiger.src.coreengine.assets.impl;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;
import speiger.src.coreengine.assets.AssetLocation;
import speiger.src.coreengine.assets.IAsset;
import speiger.src.coreengine.assets.IAssetPackage;
public class FolderAssetPackage implements IAssetPackage
{
static final FileFilter FOLDER_FILTER = new FileFilter(){
@Override
public boolean accept(File f)
{
return f.isDirectory();
}
};
File file;
public FolderAssetPackage(File file)
{
this.file = file;
}
@Override
public List<String> getDomains()
{
List<String> result = new ArrayList<String>();
File asset = new File(file, "assets/");
for(File file : asset.listFiles(FOLDER_FILTER))
{
result.add(file.getAbsolutePath().substring(asset.getAbsolutePath().length() + 1).replace("\\", "/").replace("\"", "/"));
}
return result;
}
@Override
public IAsset getAsset(AssetLocation location)
{
File asset = new File(file, location.getActualLocation());
return asset.isFile() ? new FileAsset(asset, location) : null;
}
}