diff --git a/src/main/java/appeng/block/storage/SkyChestRenderingCustomizer.java b/src/main/java/appeng/block/storage/SkyChestRenderingCustomizer.java index 252b4962..af45475d 100644 --- a/src/main/java/appeng/block/storage/SkyChestRenderingCustomizer.java +++ b/src/main/java/appeng/block/storage/SkyChestRenderingCustomizer.java @@ -29,7 +29,8 @@ public class SkyChestRenderingCustomizer extends BlockRenderingCustomizer // Register a custom non-tesr item model String modelName = getModelFromType(); - itemRendering.model( new ModelResourceLocation( "appliedenergistics2:" + modelName, "inventory" ) ); + ModelResourceLocation model = new ModelResourceLocation( "appliedenergistics2:" + modelName, "inventory" ); + itemRendering.model( model ).variants( model ); } private String getModelFromType() diff --git a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java index 51ec86bd..910e8dee 100644 --- a/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java +++ b/src/main/java/appeng/bootstrap/BlockDefinitionBuilder.java @@ -130,7 +130,8 @@ class BlockDefinitionBuilder implements IBlockBuilder @SideOnly( Side.CLIENT ) public void customize( IBlockRendering rendering, IItemRendering itemRendering ) { - itemRendering.model( new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, registryName ), "inventory" ) ); + ModelResourceLocation model = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, registryName ), "inventory" ); + itemRendering.model( model ).variants( model ); } } ); diff --git a/src/main/java/appeng/bootstrap/ItemRendering.java b/src/main/java/appeng/bootstrap/ItemRendering.java index 2e054bd1..8c8978db 100644 --- a/src/main/java/appeng/bootstrap/ItemRendering.java +++ b/src/main/java/appeng/bootstrap/ItemRendering.java @@ -2,6 +2,7 @@ package appeng.bootstrap; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -127,6 +128,16 @@ class ItemRendering implements IItemRendering { factory.addBootstrapComponent( new ItemVariantsComponent( item, resources ) ); } + else if( !this.itemModels.isEmpty() || itemMeshDefinition != null ) + { + // Adding an empty variant list here will prevent Vanilla from trying to load the default item model in this case + factory.addBootstrapComponent( new ItemVariantsComponent( item, Collections.emptyList() ) ); + } + else if( item instanceof ItemBlock ) + { + // The default for block items is to register the block model + factory.addBootstrapComponent( new ItemVariantsComponent( item, Collections.emptyList() ) ); + } if( itemColor != null ) { diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index e5eff9b2..61891bd5 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -420,7 +420,8 @@ public final class ApiBlocks implements IBlocks @SideOnly( Side.CLIENT ) public void customize( IBlockRendering rendering, IItemRendering itemRendering ) { - itemRendering.model( new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, registryName ), "facing=east,half=bottom,shape=straight" ) ); + ModelResourceLocation model = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, registryName ), "facing=east,half=bottom,shape=straight" ); + itemRendering.model( model ); } } ) .build(); diff --git a/src/main/java/appeng/items/parts/ItemMultipartRendering.java b/src/main/java/appeng/items/parts/ItemMultipartRendering.java index a7d73581..bf92947a 100644 --- a/src/main/java/appeng/items/parts/ItemMultipartRendering.java +++ b/src/main/java/appeng/items/parts/ItemMultipartRendering.java @@ -43,10 +43,10 @@ public class ItemMultipartRendering extends ItemRenderingCustomizer // Register all item models as variants so they get loaded rendering.variants( Arrays.stream( PartType.values() ) + .filter( f -> f != PartType.InvalidType ) .flatMap( part -> part.getItemModels().stream() ) .collect( Collectors.toList() ) ); - // TODO All of this has to go somewhere else! (I.e. when the part is registered) // Register the built-in models for annihilation planes ResourceLocation annihilationPlaneTexture = new ResourceLocation( AppEng.MOD_ID, "items/part/annihilation_plane" ); ResourceLocation annihilationPlaneOnTexture = new ResourceLocation( AppEng.MOD_ID, "parts/annihilation_plane_on" ); diff --git a/src/main/resources/assets/appliedenergistics2/blockstates/matrix_frame.json b/src/main/resources/assets/appliedenergistics2/blockstates/matrix_frame.json new file mode 100644 index 00000000..af204551 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/blockstates/matrix_frame.json @@ -0,0 +1,7 @@ +{ + "variants": { + "normal": { + "model": "appliedenergistics2:matrix_frame" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/blockstates/quartz_vibrant_glass.json b/src/main/resources/assets/appliedenergistics2/blockstates/quartz_vibrant_glass.json index a34ef0e1..87996316 100644 --- a/src/main/resources/assets/appliedenergistics2/blockstates/quartz_vibrant_glass.json +++ b/src/main/resources/assets/appliedenergistics2/blockstates/quartz_vibrant_glass.json @@ -1,31 +1,7 @@ { - "multipart": [ - { - "apply": [{ "model": "appliedenergistics2:quartz_glass_1" }, { "model": "appliedenergistics2:quartz_glass_2" }, { "model": "appliedenergistics2:quartz_glass_3" }, { "model": "appliedenergistics2:quartz_glass_4" }] - }, - { - "when": { "down": "false" }, - "apply": { "model": "appliedenergistics2:quartz_glass_frame", "x": 90 } - }, - { - "when": { "up": "false" }, - "apply": { "model": "appliedenergistics2:quartz_glass_frame", "x": -90 } - }, - { - "when": { "north": "false" }, - "apply": { "model": "appliedenergistics2:quartz_glass_frame"} - }, - { - "when": { "south": "false" }, - "apply": { "model": "appliedenergistics2:quartz_glass_frame", "y": 180 } - }, - { - "when": { "west": "false" }, - "apply": { "model": "appliedenergistics2:quartz_glass_frame", "y": -90 } - }, - { - "when": { "east": "false" }, - "apply": { "model": "appliedenergistics2:quartz_glass_frame", "y": 90 } + "variants": { + "normal": { + "model": "appliedenergistics2:builtin/quartz_glass" } - ] -} + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/block/matrix_frame.json b/src/main/resources/assets/appliedenergistics2/models/block/matrix_frame.json new file mode 100644 index 00000000..6630c40b --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/matrix_frame.json @@ -0,0 +1,3 @@ +{ + "elements": [] +} \ No newline at end of file