- 12
- 0
В общем, добавил в блок код на субтипы (тупо скопипастил...), подстроил под обстановку, НО то ли я чего то неправильно сделал, либо эклипс пъян (пикча всё сама расскажет)
Сам код блока:
Сам код блока:
Java:
package ru.electrodynamite12.test.blocks;
import java.util.List;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.BlockDirt;
import net.minecraft.block.BlockSandStone;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IStringSerializable;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import ru.electrodynamite12.test.init.BlocksRegister;
import ru.electrodynamite12.test.init.ItemsRegister;
import ru.electrodynamite12.test.main.Main;
public class HlomOre extends Block {
public static final PropertyEnum<HlomOreTypes> VARIANT = PropertyEnum.<HlomOreTypes>create("variant", HlomOreTypes.class);
public HlomOre(String name) {
super(Material.ROCK);
this.blockHardness = 98;
this.blockResistance = 5700;
this.setUnlocalizedName(name);
this.setRegistryName(name);
this.lightOpacity = 15;
this.setHarvestLevel("pickaxe", 3);
this.setCreativeTab(Main.BLOCKTAB);
this.setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, HlomOreTypes.HLOMORE));
}
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, new IProperty[] {VARIANT});
}
public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> items) {
items.add(new ItemStack(this, 1, HlomOreTypes.ENDHLOMORE.getMetadata()));
items.add(new ItemStack(this, 1, HlomOreTypes.HLOMORE.getMetadata()));
}
public IBlockState getStateFromMeta(int meta)
{
return this.getDefaultState().withProperty(VARIANT, HlomOreTypes.byMetadata(meta));
}
public int getMetaFromState(IBlockState state)
{
return ((HlomOreTypes)state.getValue(VARIANT)).getMetadata();
}
public int damageDropped(IBlockState state)
{
return ((HlomOre.HlomOreTypes)state.getValue(VARIANT)).getMetadata();
}
public boolean isOpaqueCube(IBlockState state)
{
return false;
}
@Override
public boolean isFullCube(IBlockState state)
{
return true;
}
public Item getItemDropped (IBlockState state, Random rand, int fortune) {
return ItemsRegister.HLOMNUGGET;
}
public int guantityDropped (Random random) {
return random.nextInt(3) + 2;
}
public int quantityDroppedWithBonus(int fortune, Random random)
{
return this.guantityDropped(random) + (fortune * 2);
}
public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, IBlockState state, float chance, int fortune) {
super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune);
}
public int getExpDrop(IBlockState state, IBlockAccess world, BlockPos pos, int fortune)
{
return 15 * fortune + 15;
}
public static enum HlomOreTypes implements IStringSerializable
{
HLOMORE(0, "hlominite_ore", "overworld"),
ENDHLOMORE(1, "hlominite_ore", "end"),
private static final HlomOre.HlomOreTypes[] META_LOOKUP = new HlomOre.HlomOreTypes[values().length];
private final int metadata;
private final String name;
private final String unlocalizedName;
private HlomOreTypes(int meta, String name, String unlocalizedName)
{
this.metadata = meta;
this.name = name;
this.unlocalizedName = unlocalizedName;
}
public int getMetadata()
{
return this.metadata;
}
public String toString()
{
return this.name;
}
/**
* Returns the matching EnumType for the given metadata.
*/
public static HlomOre.HlomOreTypes byMetadata(int meta)
{
if (meta < 0 || meta >= META_LOOKUP.length)
{
meta = 0;
}
return META_LOOKUP[meta];
}
public String getName()
{
return this.name;
}
public String getUnlocalizedName()
{
return this.unlocalizedName;
}
static
{
for (HlomOre.HlomOreTypes hlomore$hlomoretypes : values())
{
META_LOOKUP[hlomore$hlomoretypes.getMetadata()] = hlomore$hlomoretypes;
}
}
}