Инструмент и его предназначение

Версия Minecraft
1.12.2
91
1
5
Я добавил свою кирку, но хочу чтобы она копала только необходимые мне руды и блоки, если смотреть в ванильном коде, то там только такая строчка
Java:
private static final Set<Block> EFFECTIVE_ON = Sets.newHashSet(Blocks.ACTIVATOR_RAIL, Blocks.COAL_ORE, ...);
Я думаю она не подойдёт...
 
3,005
192
592
@EnGinners Круто, сделай это!

Ты пробовал, что написано в #2 сообщении?
А результаты какие?
 
91
1
5
Ты хочешь сделать чтобы с помощью такой кирки дроп выпадал только из твоей руды?
Ну как бы да и чтобы другая кирка ломала только алмаз например и больше ничего
 
1,329
104
225
canHarvesBlock чисто для режима приключений (/gamemode 2). Предлагаю код из TheBetweenlands с похожей механикой, человек ты, надеюсь, разумный, догадаешься что куда.
Код:
    @Override
    public float getDestroySpeed(ItemStack stack, IBlockState state) {
        float digSpeed = this.efficiency;
        if (this.isEffective(stack, state)) {
            digSpeed = 100.0F;
        }
        return CorrosionHelper.getDestroySpeed(digSpeed, stack, state);
    }

    private boolean isEffective(ItemStack stack, IBlockState state) {
        if(state.getMaterial() == Material.IRON || state.getMaterial() == Material.ANVIL || state.getMaterial() == Material.ROCK) {
            return true;
        }
        for(String type : stack.getItem().getToolClasses(stack)) {
            if(state.getBlock().isToolEffective(type, state)) {
                return true;
            }
        }
        return false;
    }
 
3,005
192
592
getDestroySpeed > блок нужный -> 1 (скорее всего) -> иначе 0 (скорее всего).
 
3,005
192
592
Сейчас люди навалили, вдруг подумает, что "дело не в этом"..
Хд
А так, тупо забрать лучший ответ ))
 
3,005
192
592
Попробуй убрать этот метод.
Если все будет работать - то не нужен.
 
91
1
5
@Doc Мне нужно, чтобы моя кирка ломала только мой блок руды (определённый) у меня их 3, она сможет сломать только например Коралл, но не сможет сломать например Известняк, но и не сможет сломать обычный камень и булыжник.
 

timaxa007

Модератор
5,831
409
672
@EnGinners, есть меч который ломает паутину.
Java:
    public float getDestroySpeed(ItemStack stack, IBlockState state)
    {
        Block block = state.getBlock();

        if (block == Blocks.WEB)
        {
            return 15.0F;
        }
        else
        {
            return 1.0F;
        }
    }

    public boolean canHarvestBlock(IBlockState blockIn) {
        return blockIn.getBlock() == Blocks.WEB;
    }
Место Blocks.WEB пишешь свой блок.
 

timaxa007

Модератор
5,831
409
672
@SuperCatMaster, нужен. Конечно зависит какой именно инструмент. Но он написал, что ему нужно, чтобы он своей киркой мог добывать свои руды, а потом написал кораллы. Насколько я знаю нужно написать, чтобы он мог добывать этим инструментом определённые блоки.
 
Сверху