// Path: src/api/java/com/github/atomicblom/shearmadness/api/IBehaviourRegistry.java
// public interface IBehaviourRegistry {
// 
//     /**
//      * Registers a Model Maker that will be used when the function predicate matches
//      * @param handlesVariant a function that should return true if your IModelMaker applies to the itemStack
//      * @param behaviourFactory the factory to create a behaviour for the sheep.
//      */
//     void registerBehaviour(Function<ItemStack, Boolean> handlesVariant, Function<EntitySheep, BehaviourBase> behaviourFactory);
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/IVariationRegistry.java
// @SideOnly(Side.CLIENT)
// public interface IVariationRegistry
// {
//     /**
//      * Registers a Model Maker that will be used when the function predicate matches
//      * @param handlesVariant a function that should return true if your IModelMaker applies to the itemStack
//      * @param variationModelMaker the model maker that will make the model for the quadruped.
//      */
//     void registerVariation(Function<ItemStack, Boolean> handlesVariant, IModelMaker variationModelMaker);
// 
//     /**
//      * Registers a Model Maker that will be used when the function predicate matches using the default model maker
//      * with custom transformations.
//      * @param handlesVariant a function that should return true if your IModelMaker applies to the itemStack
//      * @param transformDefinition the transforms for the model
//      */
//     void registerVariation(Function<ItemStack, Boolean> handlesVariant, QuadrupedTransformDefinition transformDefinition);
// }


import com.github.atomicblom.shearmadness.api.IBehaviourRegistry;
import com.github.atomicblom.shearmadness.api.IVariationRegistry;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
package com.github.atomicblom.shearmadness.api.events;


/**
 * Fired during the init phase of Forge, provides a mechanism for mods to register
 * how their sheep should behave by Shear Madness.
 */
public class RegisterShearMadnessBehaviourEvent extends Event
{
// Path: src/api/java/com/github/atomicblom/shearmadness/api/IBehaviourRegistry.java
// public interface IBehaviourRegistry {
// 
//     /**
//      * Registers a Model Maker that will be used when the function predicate matches
//      * @param handlesVariant a function that should return true if your IModelMaker applies to the itemStack
//      * @param behaviourFactory the factory to create a behaviour for the sheep.
//      */
//     void registerBehaviour(Function<ItemStack, Boolean> handlesVariant, Function<EntitySheep, BehaviourBase> behaviourFactory);
// }
// 
// Path: src/api/java/com/github/atomicblom/shearmadness/api/IVariationRegistry.java
// @SideOnly(Side.CLIENT)
// public interface IVariationRegistry
// {
//     /**
//      * Registers a Model Maker that will be used when the function predicate matches
//      * @param handlesVariant a function that should return true if your IModelMaker applies to the itemStack
//      * @param variationModelMaker the model maker that will make the model for the quadruped.
//      */
//     void registerVariation(Function<ItemStack, Boolean> handlesVariant, IModelMaker variationModelMaker);
// 
//     /**
//      * Registers a Model Maker that will be used when the function predicate matches using the default model maker
//      * with custom transformations.
//      * @param handlesVariant a function that should return true if your IModelMaker applies to the itemStack
//      * @param transformDefinition the transforms for the model
//      */
//     void registerVariation(Function<ItemStack, Boolean> handlesVariant, QuadrupedTransformDefinition transformDefinition);
// }


// Path: src/api/java/com/github/atomicblom/shearmadness/api/events/RegisterShearMadnessBehaviourEvent.java
import com.github.atomicblom.shearmadness.api.IBehaviourRegistry;
import com.github.atomicblom.shearmadness.api.IVariationRegistry;
import net.minecraftforge.fml.common.eventhandler.Event;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

package com.github.atomicblom.shearmadness.api.events;


/**
 * Fired during the init phase of Forge, provides a mechanism for mods to register
 * how their sheep should behave by Shear Madness.
 */
public class RegisterShearMadnessBehaviourEvent extends Event
{
    private final IBehaviourRegistry registry;