- 1,015
- 9
- 102
Вот я попытался сделать 2 блокстейта у блока, и при запуске мне выдает java.lang.NullPointerException вот здесь:
А вот сам код блока:
В чем проблема то?
Код:
@Override
protected BlockState createBlockState() {
return new BlockState(this, new IProperty[] { TYPE });
}
Код:
package com.minebot.statics.blocks;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockState;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.IStringSerializable;
import net.minecraft.world.World;
import com.minebot.statics.Main;
import com.minebot.statics.ModInfo;
import com.minebot.statics.gui.SpoilGenerator.SG_TileEntity;
public class SplitGenerator extends Block implements ITileEntityProvider{
public static final SplitGenerator splitGenerator = new SplitGenerator();
public static final PropertyEnum<EnumType> TYPE = PropertyEnum.create("type", SplitGenerator.EnumType.class);
public SplitGenerator() {
super(Material.iron);
this.setUnlocalizedName(ModInfo.MODID + ":splitGenerator");
this.setCreativeTab(ModInfo.stCreativeTab);
this.setHardness(5f);
this.setHarvestLevel("pickaxe", 2);
this.setStepSound(soundTypeMetal);
this.setDefaultState(blockState.getBaseState().withProperty(TYPE, EnumType.WHITE));
}
@Override
public void getSubBlocks(Item itemIn, CreativeTabs tab, List<ItemStack> list) {
list.add(new ItemStack(itemIn, 1, 0));
list.add(new ItemStack(itemIn, 1, 1));
}
@Override
protected BlockState createBlockState() {
return new BlockState(this, new IProperty[] { TYPE });
}
@Override
public IBlockState getStateFromMeta(int meta) {
return getDefaultState().withProperty(TYPE, meta == 0 ? EnumType.WHITE : EnumType.BLACK);
}
@Override
public int getMetaFromState(IBlockState state) {
EnumType type = (EnumType) state.getValue(TYPE);
return type.getID();
}
@Override
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ)
{
playerIn.openGui(Main.instance, 1, worldIn, pos.getX(), pos.getY(), pos.getZ());
return true;
}
@Override
public int damageDropped(IBlockState state) {
return getMetaFromState(state);
}
@Override
public TileEntity createNewTileEntity(World worldIn, int meta) {
return new SG_TileEntity();
}
@Override
public void breakBlock(World worldIn, BlockPos pos, IBlockState state)
{
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof IInventory)
{
InventoryHelper.dropInventoryItems(worldIn, pos, (IInventory)tileentity);
}
super.breakBlock(worldIn, pos, state);
}
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
}
public enum EnumType implements IStringSerializable
{
WHITE(0, "white"),
BLACK(1, "black");
private int ID;
private String name;
private EnumType(int ID, String name) {
this.ID = ID;
this.name = name;
}
@Override
public String getName() {
return name;
}
public int getID() {
return ID;
}
@Override
public String toString() {
return getName();
}
}
}