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.assets.AssetLoadingException;
|
||||
import ca.blarg.gdx.assets.AssetLoadingUtils;
|
||||
import ca.blarg.gdx.tilemap3d.ChunkVertexGenerator;
|
||||
import ca.blarg.gdx.tilemap3d.TileChunk;
|
||||
import ca.blarg.gdx.tilemap3d.TileMap;
|
||||
|
@ -20,7 +21,11 @@ import java.nio.ByteBuffer;
|
|||
class TileMapJsonLoader {
|
||||
public static JsonTileMap load(FileHandle file) {
|
||||
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) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package ca.blarg.gdx.tilemap3d.assets.tilemesh;
|
||||
|
||||
import ca.blarg.gdx.assets.AssetLoadingException;
|
||||
import ca.blarg.gdx.assets.AssetLoadingUtils;
|
||||
import ca.blarg.gdx.graphics.atlas.TextureAtlas;
|
||||
import ca.blarg.gdx.tilemap3d.tilemesh.TileMesh;
|
||||
import ca.blarg.gdx.tilemap3d.tilemesh.TileMeshCollection;
|
||||
|
@ -11,7 +12,16 @@ import com.badlogic.gdx.utils.Json;
|
|||
class TileMeshCollectionJsonLoader {
|
||||
public static JsonTileMeshCollection load(FileHandle file) {
|
||||
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) {
|
||||
|
|
|
@ -2,6 +2,7 @@ package ca.blarg.gdx.tilemap3d.assets.tilemesh;
|
|||
|
||||
import ca.blarg.gdx.Bitfield;
|
||||
import ca.blarg.gdx.assets.AssetLoadingException;
|
||||
import ca.blarg.gdx.assets.AssetLoadingUtils;
|
||||
import ca.blarg.gdx.graphics.atlas.TextureAtlas;
|
||||
import ca.blarg.gdx.tilemap3d.tilemesh.*;
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
|
@ -15,7 +16,21 @@ import com.badlogic.gdx.utils.Json;
|
|||
class TileMeshJsonLoader {
|
||||
public static JsonTileMesh load(FileHandle file) {
|
||||
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) {
|
||||
|
|
Loading…
Reference in a new issue