Всем привет. Вы спросите, зачем это нужно? В главной файле вы прописываете все, что вам нужно (В какую вкладку будет идти предмет, текстура и прочее). А потом просто наследуете от него свой блок.
Итак, приступим:
Создаем класс с любым именем (У меня это будет ItemsGeneral). Пишем в него это:
package f1rSt1k.items;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.item.Item;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import f1rSt1k.Main;
public class ItemsGeneral extends Item{
public ItemsGeneral(int id) {
super(id);
setCreativeTab(Main.f1rSt1kCraftCreativeTab);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister reg){
this.itemIcon = reg.registerIcon("f1rst1kcraft" + ":" + (this.getUnlocalizedName().substring(5)));
}
}
Давайте разбираться.setCreativeTab(Main.f1rSt1kCraftCreativeTab);
Вкладка в креативе, в которую будут идти предметы, наследовавшие этот класс. (Я поставил свою)
public void registerIcons(IconRegister reg){
this.itemIcon = reg.registerIcon("f1rst1kcraft" + ":" + (this.getUnlocalizedName().substring(5)));
}
"f1rst1kcraft" - ваш мод айди (modid)
Главное, чтобы .setUnlocalizedName(""); совпадало с название текстуры, иначе ничего не выйдет.
Все, остальное не важно.
Как теперь выглядит класс обычного предмета:package f1rSt1k.items;
public class ItemChainRing extends ItemsGeneral{
public ItemChainRing(int id) {
super(id);
}
}
Здесь почти тоже самое, так что я рассказывать не буду.
Создаем класс, у меня это BlocksGeneral. Пишем в него это:
package f1rSt1k.blocks;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import f1rSt1k.Main;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
public class BlocksGeneral extends Block{
public BlocksGeneral(int id, Material material) {
super(id, material);
setCreativeTab(Main.f1rSt1kCraftCreativeTab);
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IconRegister reg){
this.blockIcon = reg.registerIcon("f1rst1kcraft" + ":" + (this.getUnlocalizedName().substring(5)));
}
}
Также, главное чтобы совпадало UnlocalizedName с названием текстуры.
Вот так выглядит класс обычного блока:package f1rSt1k.blocks;
import net.minecraft.block.material.Material;
public class BlockSnowBricks extends BlocksGeneral{
public BlockSnowBricks(int id, Material material) {
super(id, material);
}
}
Ну вот и все. Что же нам это дало? Теперь все блоки, которые наследуют от главного класса, будут получать текстуры автоматически. Также и идти в нужную вкладку в креативе.
А на этом я с вами прощаюсь, всем удачи и пока!
, , и
ещё 5 нравится это сообщение.
Сообщение отредактировал 16 июля 2013 - 20:43