Установка HarvestLevel у блока

Версия Minecraft
1.7.10
2,932
44
599
Доброго времени суток Земляне и Чужие!
Сегодня я делая свой блок задался вопросом: Как в public static можно установить/задать блоку HarvestLevel?
Пример​
Есть у меня вот такой вот блок:
Java:
public class ExampleOre extends Block {
    public ExampleOre(String blockName, Material material, float hardness) {
        super(material);
        setHarvestLevel("pickaxe", 1);
        setBlockName(blockName);
        setHardness(hardness);
        setResistance(hardness);
        setBlockTextureName(Reference.mod_ID + ":" + blockName);
    }
}
И вопрос в том: Как мне добавить/указать HarvestLevel в этом случае
Java:
public static Block oreCoal = new ExampleOre(null, Material.rock, 2).setCreativeTab(CreativeTabs.tabBlock).setBlockName("oreCoal").setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston).setBlockTextureName("oredeposits:iron_ore");
 
Решение
Превозмогая все трудности! Через костыль и велосипед!
Решение проблемы найдено!
Java:
public class IronPickaxeOre extends Block {
    public IronPickaxeOre(String blockName, Material material, float hardness) {
        super(material);
        setHarvestLevel("pickaxe", 2);
    }
}
Java:
public class StonePickaxeOre extends Block {
    public StonePickaxeOre(String blockName, Material material, float hardness) {
        super(material);
        setHarvestLevel("pickaxe", 1);
    }
}
Java:
    public static Block oreCoal = new StonePickaxeOre(null, Material.rock, 2).setCreativeTab(CreativeTabs.tabBlock)
            .setBlockName("oreCoal").setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston)...
Может понадобится таким людям...
P.S. Он на 1.12.
Просто пишешь сразу, что тебе в нем нужно и класс все сделает.
Java:
public class BlockBase extends Block {

    public BlockBase(String name) {
        this(Material.GROUND, name);
    }

    public BlockBase(Material material, String name) {
        this(material, name, false);
    }

    public BlockBase(Material material, String name, boolean unbreakable) {
        this(material, name, 0.0f, unbreakable);
    }

    public BlockBase(Material material, String name, float resistance) {
        this(material, name, resistance, false);
    }

    public BlockBase(Material material, String name, float resistance, boolean unbreakable) {
        this(material, name, resistance, 0.0f, unbreakable);
    }

    public BlockBase(Material material, String name, float resistance, float hardness) {
        this(material, name, resistance, hardness, false);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, boolean unbreakable) {
        this(material, name, resistance, hardness, ToolType.PICKAXE, unbreakable);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool) {
        this(material, name, resistance, hardness, tool, false);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool, boolean unbreakable) {
        this(material, name, resistance, hardness, tool, 0, unbreakable);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool, int harvestLevel) {
        this(material, name, resistance, hardness, tool, harvestLevel, false);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool, int harvestLevel, boolean unbreakable) {
        this(material, name, resistance, hardness, tool, harvestLevel, 0.0f, unbreakable);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool, int harvestLevel, float lightLevel) {
        this(material, name, resistance, hardness, tool, harvestLevel, lightLevel, false);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool, int harvestLevel, float lightLevel, boolean unbreakable) {
        this(material, name, resistance, hardness, tool, harvestLevel, lightLevel, 0, unbreakable);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool, int harvestLevel, float lightLevel, int lightOpacity) {
        this(material, name, resistance, hardness, tool, harvestLevel, lightLevel, lightOpacity, false);
    }

    public BlockBase(Material material, String name, float resistance, float hardness, ToolType tool, int harvestLevel, float lightLevel, int lightOpacity, boolean unbreakable) {
        super(material);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
        this.setResistance(resistance);
        this.setHardness(hardness);
        this.setHarvestLevel(tool.getTool(), harvestLevel);
        this.setLightLevel(lightLevel);
        this.setLightOpacity(lightOpacity);
        if (unbreakable) this.setBlockUnbreakable();
        this.setCreativeTab(CreativeTabs.REDSTONE);
    }
}
 
В public static никак нельзя ничего установить.
Зачем ты вообще сделал блоку конструктор, в котором делаешь что надо, а потом через чайны устанавливаешь свойства, при этом передав в сам конструктор чет знает что... Тем более ты УЖЕ УСТАНОВИЛ в конструкторе харвест левел, если ты не видишь...
Да прочти ты уже эту книгу по яве, хотя бы по 20 страниц в день. За то писаться потом будет в разы легче...
 
В public static никак нельзя ничего установить.
Зачем ты вообще сделал блоку конструктор, в котором делаешь что надо, а потом через чайны устанавливаешь свойства, при этом передав в сам конструктор чет знает что... Тем более ты УЖЕ УСТАНОВИЛ в конструкторе харвест левел, если ты не видишь...
Да прочти ты уже эту книгу по яве, хотя бы по 20 страниц в день. За то писаться потом будет в разы легче...
1. Спасибо! Не знал что можно и не делать блоку конструктор!.
2. Ладно я понимаю что так делать нельзя и надо уже наконец-то ПРОЧИТАТЬ книгу по Java.
 
Ты не так понял. Он пишет как установить в паблик статик. Это модификаторы, которые можно только использовать, а не устанавливать в НИХ что-то. Если быть честным, то я просто придрался к словам
 
Последнее редактирование:
Нельзя, он обязателен. Ты должен передать в дефолтный конструктор материал блока.
Работает значит не трогай! :geek:
Java:
public class StonePickaxeOre extends Block {
    public StonePickaxeOre(String blockName, Material material, float hardness) {
        super(material);
        setHarvestLevel("pickaxe", 1);
    }
}
Java:
public static Block oreCoal = new StonePickaxeOre(null, Material.rock, 2).setCreativeTab(CreativeTabs.tabBlock)
            .setBlockName("oreCoal").setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston)
            .setBlockTextureName("oredeposits:iron_ore");
 
Превозмогая все трудности! Через костыль и велосипед!
Решение проблемы найдено!
Java:
public class IronPickaxeOre extends Block {
    public IronPickaxeOre(String blockName, Material material, float hardness) {
        super(material);
        setHarvestLevel("pickaxe", 2);
    }
}
Java:
public class StonePickaxeOre extends Block {
    public StonePickaxeOre(String blockName, Material material, float hardness) {
        super(material);
        setHarvestLevel("pickaxe", 1);
    }
}
Java:
    public static Block oreCoal = new StonePickaxeOre(null, Material.rock, 2).setCreativeTab(CreativeTabs.tabBlock)
            .setBlockName("oreCoal").setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston)
            .setBlockTextureName("oredeposits:iron_ore");
    public static Block oreIron = new StonePickaxeOre(null, Material.iron, 2).setCreativeTab(CreativeTabs.tabBlock)
            .setBlockName("oreIron").setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston)
            .setBlockTextureName("oredeposits:iron_ore");
    public static Block oreGold = new IronPickaxeOre(null, Material.rock, 2).setCreativeTab(CreativeTabs.tabBlock)
            .setBlockName("oreGold").setHardness(3.0F).setResistance(5.0F).setStepSound(Block.soundTypePiston)
            .setBlockTextureName("oredeposits:iron_ore");
 
Думаю тут почкование
 
Назад
Сверху