J3MLoader: enforce MaterialKey requirements based on extension

This commit is contained in:
Kirill Vainer 2015-04-25 18:25:07 -04:00
parent ed4b70bcad
commit aba48495e1

View File

@ -573,6 +573,11 @@ public class J3MLoader implements AssetLoader {
InputStream in = info.openStream(); InputStream in = info.openStream();
try { try {
key = info.getKey(); key = info.getKey();
if (key.getExtension().equals("j3m") && !(key instanceof MaterialKey)) {
throw new IOException("Material instances must be loaded via MaterialKey");
} else if (key.getExtension().equals("j3md") && key instanceof MaterialKey) {
throw new IOException("Material definitions must be loaded via AssetKey");
}
loadFromRoot(BlockLanguageParser.parse(in)); loadFromRoot(BlockLanguageParser.parse(in));
} finally { } finally {
if (in != null){ if (in != null){
@ -581,9 +586,6 @@ public class J3MLoader implements AssetLoader {
} }
if (material != null){ if (material != null){
if (!(info.getKey() instanceof MaterialKey)){
throw new IOException("Material instances must be loaded via MaterialKey");
}
// material implementation // material implementation
return material; return material;
}else{ }else{