#java #minecraft
#java #Minecraft
Вопрос:
Я кодирую мод для minecraft, и я пытаюсь заставить мой блок сбрасывать добычу только при добыче с уровнем сбора 2 или более (железо или выше). Я установил свой уровень сбора урожая на 2, но все еще могу добывать его своим кулаком. Почему это? Вот мой код для блока.
import net.minecraft.block.Block;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraftforge.common.ToolType;
public class RubyBlock extends Block {
public RubyBlock(){
super(Properties.create(Material.IRON)
.hardnessAndResistance(5.0f,6.0f)
.sound(SoundType.METAL)
.harvestLevel(2)
.harvestTool(ToolType.PICKAXE)
);
}
}
Комментарии:
1. Привет! К сожалению, подобные вопросы не очень подходят для SO. У нас есть много отличных программистов, которые могут ответить на вопросы java, но вопрос, подобный этому, касается Minecraft API, а не java. Вы получили бы гораздо лучшие и быстрые ответы на форуме по моддингу Minecraft.
2. Как упоминал Chalie, об этом лучше всего спрашивать на форуме модов Minecraft. Но на всякий случай, если кто-то может помочь, какой API вы используете? Я не вижу какой-либо очевидной проблемы с этим кодом, но как RubyBlocks добавляются в мир?
3. Они добавляются через обработчик реестра.
Ответ №1:
У меня была та же проблема, что и у вас, и после краткого поиска в Google я нашел этот пост в forge forms https://forums.minecraftforge.net/topic/87845-solved-bug-fixed-harvest-level-just-straight-up-not-working/
По-видимому, вам нужно добавить .func_235861_h_()
после установки уровня сбора и инструмента для перезагрузки с новой информацией.
import net.minecraft.block.Block;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraftforge.common.ToolType;
public class RubyBlock extends Block {
public RubyBlock(){
super(Properties.create(Material.IRON)
.hardnessAndResistance(5.0f,6.0f)
.sound(SoundType.METAL)
.harvestLevel(2)
.harvestTool(ToolType.PICKAXE)
.func_235861_h_()
);
}
}