timaxa007
Модератор
- 5,831
- 409
- 672
Метадата блока для 1.7.10.
https://github.com/timaxa007/Metadata_1.7.10
У блока стандартно есть метадата, просто ей надо как-то пользоваться, вот один из простых примеров:
ModMetadata (Главный класс мода)
ItemBlock в данном случаи нужно, чтобы можно было блок с разной метадатой можно было переименовать на нужное имя (для локализации).
----------------------
BlockMetadata (Блок)
---------------------
ItemBlockMetadata (ИтемБлок)
Ну как-так.
-----------------------------
https://github.com/timaxa007/Metadata_1.7.10
У блока стандартно есть метадата, просто ей надо как-то пользоваться, вот один из простых примеров:
ModMetadata (Главный класс мода)
Код:
@Mod (modid = ModMetadata.MODID, name = ModMetadata.MODNAME, version = ModMetadata.VERSION)
public class ModMetadata {
public static final String MODID = "metadata";
public static final String MODNAME = "Metadata";
public static final String VERSION = "0.2a";
@Instance(ModMetadata.MODID)
public static ModMetadata instance;
public static Block block_metadata;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
block_metadata = new BlockMetadata();
GameRegistry.registerBlock(block_metadata, ItemBlockMetadata.class, "block_metadata");
}
}
----------------------
BlockMetadata (Блок)
Код:
public class BlockMetadata extends Block {
public static final String[] metadata = new String[] {
"meta_1",
"meta_2",
"meta_3",
"meta_4",
"meta_5",
"meta_6",
"meta_7",
"meta_8",
"meta_9",
"meta_10",
"meta_11",
"meta_12",
"meta_13",
"meta_14",
"meta_15",
"meta_16"
};
@SideOnly(Side.CLIENT)
private IIcon[] icon_array;
public BlockMetadata() {
super(Material.circuits);
setCreativeTab(CreativeTabs.tabBlock);
setHardness(0.3F);
setResistance(1.0F);
setBlockTextureName(ModMetadata.MODID + ":block_metadata");
setBlockName("block_metadata");
}
@Override
public int damageDropped(int metadata) {
return metadata;
}
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
if (metadata >= 0 && metadata < BlockMetadata.metadata.length) {
return icon_array[metadata];
}
return super.getIcon(side, metadata);
}
@SideOnly(Side.CLIENT)
public void getSubBlocks(Item id, CreativeTabs table, List list) {
for (int j = 0; j < metadata.length; ++j) {
list.add(new ItemStack(id, 1, j));
}
}
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister ir) {
super.registerBlockIcons(ir);
icon_array = new IIcon[metadata.length];
for (int i = 0; i < metadata.length; ++i) {
icon_array[i] = ir.registerIcon(getTextureName() + "/" + metadata[i]);
}
}
}
ItemBlockMetadata (ИтемБлок)
Код:
public class ItemBlockMetadata extends ItemMultiTexture {
public ItemBlockMetadata(Block block) {
super(block, block, BlockMetadata.metadata);
}
}
-----------------------------