Наследие и дополнение свойств итема

Версия Minecraft
1.12.2
1,031
19
87
Вот допустим я облегчил себе задачу по созданию блоков
Java:
public class BaseBlock extends Block {
    
    protected String registryname;
    protected String localizename;
    protected String toolclass;
    
    protected int toollevel;
    protected int hardness;
    protected int resistance;

    public BaseBlock(Material material, String registryname, String localizename, String toolclass, int toollevel, int hardness, int resistance) {
        
        super(material);
    
        this.registryname = registryname;
        this.localizename = localizename;
        this.toolclass = toolclass;
        this.toollevel = toollevel;
        this.hardness = hardness;
        this.resistance = resistance;
    
        setRegistryName(registryname);
        setUnlocalizedName(localizename);
        setHarvestLevel(toolclass, toollevel);
        setHardness(hardness);
        setResistance(resistance);
        
        setCreativeTab(IndustryCore.INDUSTRY_TAB);
        
    }
    
    public void registerItemModel(Item itemBlock) {
        
        IndustryCore.proxy.registerItemRenderer(itemBlock, 0, registryname);
        
    }
    
    public Item createItemBlock() {
        
        return new ItemBlock(this).setRegistryName(getRegistryName());
        
    }
Код:
public class IndustryBlock {
    
    public static BaseBlock COPPER_ORE = new BaseBlock(Material.ROCK, "copper_ore", "ore.copper", "pickaxe", 0, 2, 15);
    
    public static void register(IForgeRegistry<Block> registry) {

        registry.registerAll(
                
                COPPER_ORE
                
        );
        
    }

    public static void registerItemBlocks(IForgeRegistry<Item> registry) {
        
        registry.registerAll(
                
                COPPER_ORE.createItemBlock()
                
        );
        
    }

    public static void registerModels() {
        
        COPPER_ORE.registerItemModel(Item.getItemFromBlock(COPPER_ORE));
        
    }
    
}
Как создать новый тип предметов и добавить этому типу новые свойства?
 
7,099
324
1,510
В чем, собственно, проблема возникает? Все же аналогично блоку делается
 
1,031
19
87
В чем, собственно, проблема возникает? Все же аналогично блоку делается
Нет, имеется ввиду чтобы например задать предмету свойство в виде числа. По задумке хочу создать тапа акумулятора с заданой ёмкостю и износом, но хочу упаковать всё, типа создать класс BaseBattery, в котором предмету будут заданы новые свойства, а в другом классе при регистрации прописать числа для свойств
 

Eifel

Модератор
1,624
79
609
Ну если ты просто сделаешь поля в классе предмета, то при изменении таких полей будут меняться значения у всех предметов в мире. Думаю тут надо использовать NBT или же CAP`у для предметов
 
1,031
19
87
Ну если ты просто сделаешь поля в классе предмета, то при изменении таких полей будут меняться значения у всех предметов в мире. Думаю тут надо использовать NBT или же CAP`у для предметов
Можешь дать ссылки на туториалы или что-то что поможет в задумке?
 
7,099
324
1,510
ItemStack#getTagCompoud
ItemStack#setTagCompoud
И сорцы самого тэга почитай.

P.S. Хотел посоветовать учебник Ивасика, но там не оказалось статей про нбт. Как так-то?
 
1,031
19
87
ItemStack#getTagCompoud
ItemStack#setTagCompoud
И сорцы самого тэга почитай.

P.S. Хотел посоветовать учебник Ивасика, но там не оказалось статей про нбт. Как так-то?
Чёт я ничего не понял О_о
 
5,018
47
783
Скачал бы мою либу и не парился...
Новое свойство как ты хочешь создается так
1) Обьявляешь переменную в классе
public int var
2)В конструкторе дописываешь int varC
3) и потом в теле конструктора пишешь this.var = varC;
 
Сверху