mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-12 08:17:35 +00:00
Fix dependency resolution for models with custom data/textures.
This commit is contained in:
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.
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user