Files
ForestryMC/src/main/java/forestry/api/genetics/IMutationBuilder.java
T
mezz c0a22f4a28 Split mutationCustom into mutationBuilder and Mutation
Remove EntityBee
Update MutationConditionRequiresResource to use blockState
2016-06-17 15:20:19 -07:00

56 lines
2.0 KiB
Java

/*******************************************************************************
* Copyright 2011-2014 SirSengir
*
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
******************************************************************************/
package forestry.api.genetics;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraftforge.common.BiomeDictionary;
import forestry.api.core.EnumHumidity;
import forestry.api.core.EnumTemperature;
/** Set custom mutation requirements */
public interface IMutationBuilder {
IMutation build();
/** Prevent this mutation from being shown in the analyzers */
IMutationBuilder setIsSecret();
/** Require a specific temperature for this mutation to occur */
IMutationBuilder restrictTemperature(EnumTemperature temperature);
IMutationBuilder restrictTemperature(EnumTemperature minTemperature, EnumTemperature maxTemperature);
/** Require a specific humidity for this mutation to occur */
IMutationBuilder restrictHumidity(EnumHumidity humidity);
IMutationBuilder restrictHumidity(EnumHumidity minHumidity, EnumHumidity maxHumidity);
/**
* Restrict this mutation to certain types of biomes.
* @param types The types of biomes this mutation can occur.
*/
IMutationBuilder restrictBiomeType(BiomeDictionary.Type... types);
/** Restrict the days of the year that this mutation can occur */
IMutationBuilder restrictDateRange(int startMonth, int startDay, int endMonth, int endDay);
/** Restrict the time of day that this mutation can occur */
IMutationBuilder requireDay();
IMutationBuilder requireNight();
/** Require a specific resource to be under the location of the mutation */
IMutationBuilder requireResource(IBlockState requiredBlockState);
IMutationBuilder requireResource(String oreDictName);
/** Require some other custom mutation condition */
IMutationBuilder addMutationCondition(IMutationCondition mutationCondition);
}