Как мне сделать цветок, который может расти как урожай? - PullRequest
0 голосов
/ 25 сентября 2019

Я делаю мод для Minecraft с кузницей 1.14, который добавляет цветок, который должен расти.Как я могу заставить их расти после случайного времени?

Это уже работает с костной мукой, но я не хочу, чтобы их выращивали с костной мукой.Я также пытался поместить оператор print в методы grow () и tick (), но в консоли ничего не отображалось.

Вот класс java моего цветка:

public class EnergyFlowerBlock extends FlowerBlock implements IGrowable {
    public EnergyFlowerBlock(Effect p_i49984_1_, int p_i49984_2_, Properties p_i49984_3_) {
        super(p_i49984_1_, p_i49984_2_, p_i49984_3_);
    }

    public boolean canGrow(IBlockReader worldIn, BlockPos pos, BlockState state, boolean isClient) {
        return !(worldIn.getBlockState(pos) == BlockRegistry.BLOOMING_ENERGY_FLOWER.getDefaultState());
    }

    public boolean canUseBonemeal(World worldIn, Random rand, BlockPos pos, BlockState state) {
        return false;
    }

    public void grow(World worldIn, BlockPos pos, BlockState state) {
        worldIn.setBlockState(pos, BlockRegistry.BLOOMING_ENERGY_FLOWER.getDefaultState());
    }

    public void grow(World worldIn, Random rand, BlockPos pos, BlockState state) {
        this.grow(worldIn, pos, state);
    }

    @Override
    public void tick(BlockState state, World worldIn, BlockPos pos, Random random) {
        System.out.println("hello from tick in EnergyFlowerBlock");
        super.tick(state, worldIn, pos, random);
        if (!worldIn.isAreaLoaded(pos, 1)) return;
        if (worldIn.getLightSubtracted(pos, 0) >= 9) {
            if (canGrow(worldIn, pos, state, true)) {
                float f = 0.1F;
                if (net.minecraftforge.common.ForgeHooks.onCropsGrowPre(worldIn, pos, state, random.nextInt((int)(25.0F / f) + 1) == 0)) {
                    worldIn.setBlockState(pos, BlockRegistry.BLOOMING_ENERGY_FLOWER.getDefaultState());
                    net.minecraftforge.common.ForgeHooks.onCropsGrowPost(worldIn, pos, state);
                }
            }
        }
    }
}
...