Make block registration a bit more robust
This commit is contained in:
parent
7e7e0f5c7f
commit
101e305bce
|
@ -18,7 +18,6 @@ public interface IBOPBlock {
|
|||
public int getItemRenderColor(IBlockState state, int tintIndex);
|
||||
public IProperty[] getPresetProperties();
|
||||
public IProperty[] getRenderProperties();
|
||||
public IBlockState getDefaultState();
|
||||
public String getStateName(IBlockState state);
|
||||
|
||||
}
|
|
@ -285,12 +285,17 @@ public class ModBlocks
|
|||
// if this block supports the IBOPBlock interface then we can determine the item block class, and sub-blocks automatically
|
||||
IBOPBlock bopBlock = (IBOPBlock)block;
|
||||
GameRegistry.registerBlock(block, bopBlock.getItemClass(), blockName);
|
||||
ImmutableSet<IBlockState> presets = BlockStateUtils.getBlockPresets(bopBlock);
|
||||
|
||||
// check for missing default states
|
||||
IBlockState defaultState = block.getDefaultState();
|
||||
if (defaultState == null) {throw new java.lang.NullPointerException("missing default state for " + block.getUnlocalizedName());}
|
||||
|
||||
// get the preset blocks variants
|
||||
ImmutableSet<IBlockState> presets = BlockStateUtils.getBlockPresets(block);
|
||||
if (presets.isEmpty())
|
||||
{
|
||||
// block has no sub-blocks to register
|
||||
registerBlockVariant(block, blockName, block.getMetaFromState(block.getDefaultState()));
|
||||
registerBlockVariant(block, blockName, block.getMetaFromState(defaultState));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -47,7 +47,7 @@ public class ItemBOPBlock extends ItemBlock
|
|||
@SideOnly(Side.CLIENT)
|
||||
public void getSubItems(Item itemIn, CreativeTabs tab, List subItems)
|
||||
{
|
||||
ImmutableSet<IBlockState> presets = BlockStateUtils.getBlockPresets(bopBlock);
|
||||
ImmutableSet<IBlockState> presets = BlockStateUtils.getBlockPresets(this.block);
|
||||
if (presets.isEmpty())
|
||||
{
|
||||
subItems.add(new ItemStack(this.block, 1, this.block.getMetaFromState( this.block.getDefaultState() )));
|
||||
|
@ -78,7 +78,7 @@ public class ItemBOPBlock extends ItemBlock
|
|||
@Override
|
||||
public String getUnlocalizedName(ItemStack stack)
|
||||
{
|
||||
ImmutableSet<IBlockState> presets = BlockStateUtils.getBlockPresets(bopBlock);
|
||||
ImmutableSet<IBlockState> presets = BlockStateUtils.getBlockPresets(this.block);
|
||||
if (presets.isEmpty())
|
||||
{
|
||||
return super.getUnlocalizedName();
|
||||
|
|
|
@ -16,6 +16,7 @@ import java.util.Set;
|
|||
import java.util.Stack;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import biomesoplenty.api.block.IBOPBlock;
|
||||
|
@ -44,15 +45,30 @@ public class BlockStateUtils
|
|||
return desc;
|
||||
}
|
||||
|
||||
|
||||
public static ImmutableSet<IBlockState> getBlockPresets(IBOPBlock block)
|
||||
{
|
||||
return getStatesSet(block.getDefaultState(), block.getPresetProperties());
|
||||
public static ImmutableSet<IBlockState> getBlockPresets(Block block)
|
||||
{
|
||||
IBlockState defaultState = block.getDefaultState();
|
||||
if (defaultState != null && block instanceof IBOPBlock)
|
||||
{
|
||||
return getStatesSet(block.getDefaultState(), ((IBOPBlock)block).getPresetProperties());
|
||||
}
|
||||
else
|
||||
{
|
||||
return ImmutableSet.<IBlockState>of();
|
||||
}
|
||||
}
|
||||
|
||||
public static ImmutableSet<IBlockState> getBlockRenderStates(IBOPBlock block)
|
||||
public static ImmutableSet<IBlockState> getBlockRenderStates(Block block)
|
||||
{
|
||||
return getStatesSet(block.getDefaultState(), block.getRenderProperties());
|
||||
IBlockState defaultState = block.getDefaultState();
|
||||
if (defaultState != null && block instanceof IBOPBlock)
|
||||
{
|
||||
return getStatesSet(block.getDefaultState(), ((IBOPBlock)block).getRenderProperties());
|
||||
}
|
||||
else
|
||||
{
|
||||
return ImmutableSet.<IBlockState>of();
|
||||
}
|
||||
}
|
||||
|
||||
public static ImmutableSet<IBlockState> getStatesSet(IBlockState baseState, IProperty... properties)
|
||||
|
|
Loading…
Reference in New Issue