Fixes #2419: Particle Textures are required, or the block damage model will crash. Also fixed an issue with textures not being propagated for UVL quads.

This commit is contained in:
Sebastian Hartte 2016-10-03 21:34:01 +02:00
parent de4acb6098
commit 744ac69fb7
3 changed files with 11 additions and 4 deletions

View file

@ -52,11 +52,14 @@ public class CableBusBakedModel implements IBakedModel
private final Map<ResourceLocation, IBakedModel> partModels; private final Map<ResourceLocation, IBakedModel> partModels;
CableBusBakedModel( CableBuilder cableBuilder, FacadeBuilder facadeBuilder, Map<ResourceLocation, IBakedModel> partModels ) private final TextureAtlasSprite particleTexture;
CableBusBakedModel( CableBuilder cableBuilder, FacadeBuilder facadeBuilder, Map<ResourceLocation, IBakedModel> partModels, TextureAtlasSprite particleTexture )
{ {
this.cableBuilder = cableBuilder; this.cableBuilder = cableBuilder;
this.facadeBuilder = facadeBuilder; this.facadeBuilder = facadeBuilder;
this.partModels = partModels; this.partModels = partModels;
this.particleTexture = particleTexture;
} }
@Override @Override
@ -272,7 +275,7 @@ public class CableBusBakedModel implements IBakedModel
@Override @Override
public TextureAtlasSprite getParticleTexture() public TextureAtlasSprite getParticleTexture()
{ {
return null; return particleTexture;
} }
@Override @Override

View file

@ -35,6 +35,7 @@ import net.minecraftforge.client.model.ModelLoaderRegistry;
import net.minecraftforge.common.model.IModelState; import net.minecraftforge.common.model.IModelState;
import net.minecraftforge.common.model.TRSRTransformation; import net.minecraftforge.common.model.TRSRTransformation;
import appeng.api.util.AEColor;
import appeng.core.AELog; import appeng.core.AELog;
import appeng.core.features.registries.PartModels; import appeng.core.features.registries.PartModels;
@ -71,13 +72,15 @@ public class CableBusModel implements IModel
@Override @Override
public IBakedModel bake( IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter ) public IBakedModel bake( IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter )
{ {
Map<ResourceLocation, IBakedModel> partModels = loadPartModels( state, format, bakedTextureGetter ); Map<ResourceLocation, IBakedModel> partModels = loadPartModels( state, format, bakedTextureGetter );
CableBuilder cableBuilder = new CableBuilder( format, bakedTextureGetter ); CableBuilder cableBuilder = new CableBuilder( format, bakedTextureGetter );
FacadeBuilder facadeBuilder = new FacadeBuilder( format, bakedTextureGetter ); FacadeBuilder facadeBuilder = new FacadeBuilder( format, bakedTextureGetter );
return new CableBusBakedModel( cableBuilder, facadeBuilder, partModels ); // This should normally not be used, but we *have* to provide a particle texture or otherwise damage models will crash
TextureAtlasSprite particleTexture = cableBuilder.getCoreTexture( CableCoreType.GLASS, AEColor.TRANSPARENT );
return new CableBusBakedModel( cableBuilder, facadeBuilder, partModels, particleTexture );
} }
private Map<ResourceLocation, IBakedModel> loadPartModels( IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter ) private Map<ResourceLocation, IBakedModel> loadPartModels( IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter )

View file

@ -361,6 +361,7 @@ public enum UVLModelLoader implements ICustomModelLoader
quad.pipe( trans ); quad.pipe( trans );
builder.setQuadTint( quad.getTintIndex() ); builder.setQuadTint( quad.getTintIndex() );
builder.setQuadOrientation( quad.getFace() ); builder.setQuadOrientation( quad.getFace() );
builder.setTexture( quad.getSprite() );
return builder.build(); return builder.build();
} }
else else