package joshie.harvest.api.gathering; import joshie.harvest.api.calendar.Season; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import javax.annotation.Nonnull; import javax.annotation.Nullable; /** This is for registering blocks to be generated by the gathering system **/ public interface IGatheringRegistry { /** Register a block state to be generated in a specific season * @param state the block state to generate * @param weight weight for this to generate * @param seasons the season this should generate in, * leave this blank if it should generate * in every single season. **/ void registerGathering(IBlockState state, double weight, Season... seasons); /** Returns a random block state for this season * @param season the current season * @return a block state */ @Nullable IBlockState getRandomStateForSeason(@Nonnull Season season); /** Register a block state as being a valid spawn location for gathering blocks * @param block the block that is valid */ void registerValidGatheringSpawn(Block block); }