[1.5.2]Дополнительное поле для описания предмета

30
0
В более новых версиях есть название и описание предметов, например:
vlXtOOMsWK

Мне понравился данный способ описания предметов и решил разузнать его.

Создаём класс ItemAxeSoul.java
P.s. Я не хочу выкладывать код этого топора. Поэтому разбор будет происходить на другом предмете.
Код:
package net.minecraft.src;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ItemAxeSoul extends Item
{
    public final String itemName;
    protected ItemMatrix(int par1, String par2Str)
    {
        super(par1);
        this.itemName = par2Str;
        this.maxStackSize = 1;
        this.setCreativeTab(CreativeTabs.tabMisc);
    }    
    public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
    {
        par3List.add("ID: §620032");
        par3List.add(this.getItemTitle());
    }    
    public String getItemTitle()
    {
        return "Призрачный топор, хранящий в себе души поверженных";
    }    
}
Код:
    public final String itemName;
        this.itemName = par2Str;
Помогут нам в добавлении описания предмета.
Код:
public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4)
    {
        par3List.add("ID: §620032");
        par3List.add(this.getItemTitle());
    }
Позволяет вставить описание. Строк может быть множество, но мы остановимся на двух: ID и описание.
Код:
public String getItemTitle()
    {
        return "Призрачный топор, хранящий в себе души поверженных";
    }    

То самое описание, что будет в выводится при наведении курсора на предмет

В Item.java пишем следующее:
Код:
public static Item axeSoul = (new ItemAxeSoul(20032, "")).setUnlocalizedName("axesoul");
20032 - ID , "" - дополнительное описание.
Если нам его нужно вставить в описание, то в getItemTitle() нужно дописать + this.itemName

Готово! У нас появилось описание!
6gKV5p2LMu

Также можно добавить описание урона 
Код:
       par3List.add("§2Урон: §6" + this.weaponDamage);
Или, например, координаты
Код:
if (world.getWorldInfo().getDimension() == 0){
                s.setItemName("\u0422\u0435\u043B\u0435\u043F\u043E\u0440\u0442\u0435\u0440: \u041C\u0438\u0440, 
"+Integer.toString((int)p.posX)+", "+Integer.toString((int)p.posY)+", "+Integer.toString((int)p.posZ));                
            }else if (world.getWorldInfo().getDimension() == 1){
                s.setItemName("\u0422\u0435\u043B\u0435\u043F\u043E\u0440\u0442\u0435\u0440: \u0410\u0434, 
"+Integer.toString((int)p.posX)+", "+Integer.toString((int)p.posY)+", "+Integer.toString((int)p.posZ));    
            }else if (world.getWorldInfo().getDimension() == 2){
                s.setItemName("\u0422\u0435\u043B\u0435\u043F\u043E\u0440\u0442\u0435\u0440: \u041A\u0440\u0430\u0439,"+Integer.toString((int)p.posX)+", "+Integer.toString((int)p.posY)+", "+Integer.toString((int)p.posZ));                
            }
Или при нажатии определенной клавиши высвечивается больше информации.
CopyPaste MCGL
 
7,099
324
1,510
addInformation до 1.7.10 не поменялся, можно диапазон пошире поставить
 
7,099
324
1,510
Это о описании предметов и его форматировании
 
2,505
81
397
Типо никто не знал, как в список строки добавлять?
 
5,018
47
783
Dahaka написал(а):
Типо никто не знал, как в список строки добавлять?

Люди тут стараются... Чё ты вредный то такой?
 
7,099
324
1,510
Наверное, Dahaka имел ввиду, что это настолько легко и очевидно, что нет смысла писать про это отдельную тему
 
Сверху