- 192
- 2
- 9
Доброго времени суток!
Создаю блок-культуру и хочу запретить её сажать вообще везде, ну пока для теста. Если я возвращаю
Создаю блок-культуру и хочу запретить её сажать вообще везде, ну пока для теста. Если я возвращаю
false
в методе mayPlaceOn()
, то это не срабатывает. Возможно я не правильно понимаю работу метода, но вроде как он позволяет менять блоки, на которых можно сажать растение. Однако судя по происходящему (дебажил), я лишь могу добавить свои блоки к уже где-то существующему (в ванилле) стандартному списку блоков, разрешенных для использования в качестве пашни и потому false
не помогает. Кто-нибудь понимает в чем дело и может объяснить?)
BlockCrops:
public class BlockCrops extends CropsBlock {
private Block[] mayPlaceOn;
private static Properties props = AbstractBlock.Properties.of(Material.PLANT)
.sound(SoundType.CROP)
.harvestLevel(0)
.strength(0)
.noCollission();
public BlockCrops(Block[] mayPlaceOn) {
super(props);
this.mayPlaceOn = mayPlaceOn;
}
public BlockCrops(Block mayPlaceOn) {
super(props);
this.mayPlaceOn = new Block[] { mayPlaceOn };
}
public BlockCrops() {
super(props);
}
@Override
protected IItemProvider getBaseSeedId() {
return this.asItem();
}
@Override
protected boolean mayPlaceOn(BlockState bstate, IBlockReader ibreader, BlockPos bpos) {
if (mayPlaceOn == null) return bstate.is(Blocks.FARMLAND);
for (Block block : mayPlaceOn)
if (bstate.toString().contains(block.getRegistryName().toString())) return true;
return false;
}
}
Последнее редактирование: