Fix dependency resolution for models with custom data/textures.

This commit is contained in:
RainWarrior committed 2015-12-17 04:41:54 +03:00
1 parent 80ba13be89
commit 1dcc9abab2
1 file changed
+25 -12
@@ -225,18 +225,7 @@ public class ModelLoader extends ModelBakery
try
{
IModel model = ModelLoaderRegistry.getModel(location);
for (ResourceLocation dep : model.getDependencies())
{
if(dep instanceof ModelResourceLocation)
{
loadVariants(ImmutableList.of((ModelResourceLocation)dep));
}
else
{
getModel(dep);
}
}
textures.addAll(model.getTextures());
resolveDependencies(model);
}
finally
{
@@ -244,6 +233,22 @@ public class ModelLoader extends ModelBakery
}
}
private void resolveDependencies(IModel model) throws IOException
{
for (ResourceLocation dep : model.getDependencies())
{
if(dep instanceof ModelResourceLocation)
{
loadVariants(ImmutableList.of((ModelResourceLocation)dep));
}
else
{
getModel(dep);
}
}
textures.addAll(model.getTextures());
}
private class VanillaModelWrapper implements IRetexturableModel
{
private final ResourceLocation location;
@@ -563,6 +568,14 @@ public class ModelLoader extends ModelBakery
if (v instanceof ISmartVariant)
{
model = ((ISmartVariant)v).process(model, ModelLoader.this);
try
{
resolveDependencies(model);
}
catch (IOException e)
{
FMLLog.getLogger().error("Exception resolving indirect dependencies for model" + loc, e);
}
textures.addAll(model.getTextures()); // Kick this, just in case.
}