Adds the ability to force a block to use a custom item model.

This commit is contained in:
Sebastian Hartte 2016-08-26 01:20:41 +02:00
parent dbaa0a9310
commit 0df62abebd
2 changed files with 24 additions and 1 deletions

View File

@ -10,9 +10,11 @@ import java.util.function.Function;
import java.util.function.Supplier;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@ -119,6 +121,22 @@ class BlockDefinitionBuilder implements IBlockBuilder
return this;
}
@Override
public IBlockBuilder useCustomItemModel()
{
rendering( new BlockRenderingCustomizer()
{
@Override
@SideOnly( Side.CLIENT )
public void customize( IBlockRendering rendering, IItemRendering itemRendering )
{
itemRendering.model( new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, registryName ), "inventory" ) );
}
} );
return this;
}
@Override
public IBlockBuilder item( Function<Block, ItemBlock> factory )
{

View File

@ -27,8 +27,13 @@ public interface IBlockBuilder
IBlockBuilder rendering( BlockRenderingCustomizer callback );
/**
* Forces this block's item to uses a custom model, instead of using the default block state as the item model.
* The model has the same name as the registry name.
*/
IBlockBuilder useCustomItemModel();
IBlockBuilder item( Function<Block, ItemBlock> factory );
<T extends IBlockDefinition> T build();
}