54 lines
1.2 KiB
Java
54 lines
1.2 KiB
Java
package speiger.src.coreengine.assets.impl;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.nio.file.DirectoryStream;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.util.List;
|
|
|
|
import speiger.src.collections.objects.lists.ObjectArrayList;
|
|
import speiger.src.coreengine.assets.AssetLocation;
|
|
import speiger.src.coreengine.assets.IAsset;
|
|
import speiger.src.coreengine.assets.IAssetPackage;
|
|
import speiger.src.coreengine.assets.impl.FolderAsset;
|
|
|
|
public class FolderAssetPackage implements IAssetPackage
|
|
{
|
|
Path baseFolder;
|
|
|
|
public FolderAssetPackage(File baseFolder)
|
|
{
|
|
this(baseFolder.toPath());
|
|
}
|
|
|
|
public FolderAssetPackage(Path baseFolder)
|
|
{
|
|
this.baseFolder = baseFolder;
|
|
}
|
|
|
|
@Override
|
|
public List<String> getDomains()
|
|
{
|
|
List<String> domains = new ObjectArrayList<>();
|
|
try(DirectoryStream<Path> dirs = Files.newDirectoryStream(baseFolder.resolve("assets")))
|
|
{
|
|
for(Path path : dirs)
|
|
{
|
|
domains.add(path.getFileName().toString());
|
|
}
|
|
}
|
|
catch(IOException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
return domains;
|
|
}
|
|
|
|
@Override
|
|
public IAsset getAsset(AssetLocation location)
|
|
{
|
|
Path path = baseFolder.resolve(location.getActualLocation());
|
|
return Files.exists(path) ? new FolderAsset(location, path) : null;
|
|
}
|
|
} |