use of com.jme3.util.blockparser.Statement in project jmonkeyengine by jMonkeyEngine.
the class MaterialLoader method load.
private MaterialList load(AssetManager assetManager, AssetKey key, InputStream in) throws IOException {
folderName = key.getFolder();
this.assetManager = assetManager;
MaterialList list = null;
List<Statement> statements = BlockLanguageParser.parse(in);
for (Statement statement : statements) {
if (statement.getLine().startsWith("import")) {
MaterialExtensionSet matExts = null;
if (key instanceof OgreMaterialKey) {
matExts = ((OgreMaterialKey) key).getMaterialExtensionSet();
}
if (matExts == null) {
throw new IOException("Must specify MaterialExtensionSet when loading\n" + "Ogre3D materials with extended materials");
}
list = new MaterialExtensionLoader().load(assetManager, key, matExts, statements);
break;
} else if (statement.getLine().startsWith("material")) {
if (list == null) {
list = new MaterialList();
}
String[] split = statement.getLine().split(" ", 2);
matName = split[1].trim();
if (matName.startsWith("\"") && matName.endsWith("\"")) {
matName = matName.substring(1, matName.length() - 1);
}
readMaterial(statement);
Material mat = compileMaterial();
list.put(mat.getName(), mat);
}
}
return list;
}
use of com.jme3.util.blockparser.Statement in project jmonkeyengine by jMonkeyEngine.
the class MaterialLoader method readTextureUnit.
private void readTextureUnit(Statement statement) {
String[] split = statement.getLine().split(" ", 2);
// name is optional
if (split.length == 2) {
texName = split[1];
} else {
texName = null;
}
textures[texUnit] = new Texture2D();
for (Statement texUnitStat : statement.getContents()) {
readTextureUnitStatement(texUnitStat);
}
if (textures[texUnit].getImage() != null) {
texUnit++;
} else {
// no image was loaded, ignore
textures[texUnit] = null;
}
}
use of com.jme3.util.blockparser.Statement in project jmonkeyengine by jMonkeyEngine.
the class MaterialLoader method readPass.
private void readPass(Statement statement) {
String name;
String[] split = statement.getLine().split(" ", 2);
if (split.length == 1) {
// no name
name = null;
} else {
name = split[1];
}
for (Statement passStat : statement.getContents()) {
readPassStatement(passStat);
}
texUnit = 0;
}
Aggregations