add support for local filenames to be specified in tile asset json files (that is, dependencies will be assumed to be in the same directory)
This commit is contained in:
parent
432923f82a
commit
7464200644
|
@ -2,6 +2,7 @@ package ca.blarg.gdx.tilemap3d.assets.tilemap;
|
||||||
|
|
||||||
import ca.blarg.gdx.Strings;
|
import ca.blarg.gdx.Strings;
|
||||||
import ca.blarg.gdx.assets.AssetLoadingException;
|
import ca.blarg.gdx.assets.AssetLoadingException;
|
||||||
|
import ca.blarg.gdx.assets.AssetLoadingUtils;
|
||||||
import ca.blarg.gdx.tilemap3d.ChunkVertexGenerator;
|
import ca.blarg.gdx.tilemap3d.ChunkVertexGenerator;
|
||||||
import ca.blarg.gdx.tilemap3d.TileChunk;
|
import ca.blarg.gdx.tilemap3d.TileChunk;
|
||||||
import ca.blarg.gdx.tilemap3d.TileMap;
|
import ca.blarg.gdx.tilemap3d.TileMap;
|
||||||
|
@ -20,7 +21,11 @@ import java.nio.ByteBuffer;
|
||||||
class TileMapJsonLoader {
|
class TileMapJsonLoader {
|
||||||
public static JsonTileMap load(FileHandle file) {
|
public static JsonTileMap load(FileHandle file) {
|
||||||
Json json = new Json();
|
Json json = new Json();
|
||||||
return json.fromJson(JsonTileMap.class, file);
|
JsonTileMap definition = json.fromJson(JsonTileMap.class, file);
|
||||||
|
|
||||||
|
definition.tileMeshes = AssetLoadingUtils.addPathIfNone(definition.tileMeshes, file.parent().path());
|
||||||
|
|
||||||
|
return definition;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TileMap create(FileHandle file, JsonTileMap definition, AssetManager assetManager) {
|
public static TileMap create(FileHandle file, JsonTileMap definition, AssetManager assetManager) {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package ca.blarg.gdx.tilemap3d.assets.tilemesh;
|
package ca.blarg.gdx.tilemap3d.assets.tilemesh;
|
||||||
|
|
||||||
import ca.blarg.gdx.assets.AssetLoadingException;
|
import ca.blarg.gdx.assets.AssetLoadingException;
|
||||||
|
import ca.blarg.gdx.assets.AssetLoadingUtils;
|
||||||
import ca.blarg.gdx.graphics.atlas.TextureAtlas;
|
import ca.blarg.gdx.graphics.atlas.TextureAtlas;
|
||||||
import ca.blarg.gdx.tilemap3d.tilemesh.TileMesh;
|
import ca.blarg.gdx.tilemap3d.tilemesh.TileMesh;
|
||||||
import ca.blarg.gdx.tilemap3d.tilemesh.TileMeshCollection;
|
import ca.blarg.gdx.tilemap3d.tilemesh.TileMeshCollection;
|
||||||
|
@ -11,7 +12,16 @@ import com.badlogic.gdx.utils.Json;
|
||||||
class TileMeshCollectionJsonLoader {
|
class TileMeshCollectionJsonLoader {
|
||||||
public static JsonTileMeshCollection load(FileHandle file) {
|
public static JsonTileMeshCollection load(FileHandle file) {
|
||||||
Json json = new Json();
|
Json json = new Json();
|
||||||
return json.fromJson(JsonTileMeshCollection.class, file);
|
JsonTileMeshCollection definition = json.fromJson(JsonTileMeshCollection.class, file);
|
||||||
|
|
||||||
|
String path = file.parent().path();
|
||||||
|
definition.textureAtlas = AssetLoadingUtils.addPathIfNone(definition.textureAtlas, path);
|
||||||
|
if (definition.tiles != null) {
|
||||||
|
for (int i = 0; i < definition.tiles.size(); ++i)
|
||||||
|
definition.tiles.set(i, AssetLoadingUtils.addPathIfNone(definition.tiles.get(i), path));
|
||||||
|
}
|
||||||
|
|
||||||
|
return definition;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TileMeshCollection create(FileHandle file, JsonTileMeshCollection definition, AssetManager assetManager) {
|
public static TileMeshCollection create(FileHandle file, JsonTileMeshCollection definition, AssetManager assetManager) {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package ca.blarg.gdx.tilemap3d.assets.tilemesh;
|
||||||
|
|
||||||
import ca.blarg.gdx.Bitfield;
|
import ca.blarg.gdx.Bitfield;
|
||||||
import ca.blarg.gdx.assets.AssetLoadingException;
|
import ca.blarg.gdx.assets.AssetLoadingException;
|
||||||
|
import ca.blarg.gdx.assets.AssetLoadingUtils;
|
||||||
import ca.blarg.gdx.graphics.atlas.TextureAtlas;
|
import ca.blarg.gdx.graphics.atlas.TextureAtlas;
|
||||||
import ca.blarg.gdx.tilemap3d.tilemesh.*;
|
import ca.blarg.gdx.tilemap3d.tilemesh.*;
|
||||||
import com.badlogic.gdx.assets.AssetManager;
|
import com.badlogic.gdx.assets.AssetManager;
|
||||||
|
@ -15,7 +16,21 @@ import com.badlogic.gdx.utils.Json;
|
||||||
class TileMeshJsonLoader {
|
class TileMeshJsonLoader {
|
||||||
public static JsonTileMesh load(FileHandle file) {
|
public static JsonTileMesh load(FileHandle file) {
|
||||||
Json json = new Json();
|
Json json = new Json();
|
||||||
return json.fromJson(JsonTileMesh.class, file);
|
JsonTileMesh definition = json.fromJson(JsonTileMesh.class, file);
|
||||||
|
|
||||||
|
String path = file.parent().path();
|
||||||
|
|
||||||
|
definition.textureAtlas = AssetLoadingUtils.addPathIfNone(definition.textureAtlas, path);
|
||||||
|
definition.model = AssetLoadingUtils.addPathIfNone(definition.model, path);
|
||||||
|
definition.collisionModel = AssetLoadingUtils.addPathIfNone(definition.collisionModel, path);
|
||||||
|
if (definition.models != null) {
|
||||||
|
for (int i = 0; i < definition.models.size(); ++i) {
|
||||||
|
JsonTileMesh.SubModels subModel = definition.models.get(i);
|
||||||
|
subModel.submodel = AssetLoadingUtils.addPathIfNone(subModel.submodel, path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return definition;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TileMesh create(FileHandle file, JsonTileMesh definition, AssetManager assetManager) {
|
public static TileMesh create(FileHandle file, JsonTileMesh definition, AssetManager assetManager) {
|
||||||
|
|
Loading…
Reference in a new issue