// Path: src/main/java/com/mrcrayfish/skateboarding/Reference.java
// public class Reference
// {
// 	public static final String MOD_ID = "csm";
// 	public static final String MOD_NAME = "MrCrayfish's Skateboarding Mod";
// 	public static final String MOD_VERSION = "0.4.0";
// 	public static final String MC_VERSION = "1.12.2";
// 	public static final String CLIENT_PROXY_CLASS = "com.mrcrayfish.skateboarding.proxy.ClientProxy";
// 	public static final String SERVER_PROXY_CLASS = "com.mrcrayfish.skateboarding.proxy.CommonProxy";
// 	public static final String DEPENDENCIES = "required-after:obfuscate@[0.2.4,)";
// }
// 
// Path: src/main/java/com/mrcrayfish/skateboarding/item/SubItems.java
// public interface SubItems
// {
//     NonNullList<ResourceLocation> getModels();
// }


import com.mrcrayfish.skateboarding.Reference;
import com.mrcrayfish.skateboarding.item.SubItems;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import java.util.LinkedList;
import java.util.List;
    @Mod.EventBusSubscriber(modid = Reference.MOD_ID)
    public static class Recipes
    {
        private static final List<IRecipe> RECIPES = new LinkedList<>();

        static void add(IRecipe recipe)
        {
            RECIPES.add(recipe);
        }

        @SubscribeEvent
        public static void register(final RegistryEvent.Register<IRecipe> event)
        {
            RECIPES.forEach(recipe -> event.getRegistry().register(recipe));
        }
    }

    @Mod.EventBusSubscriber(modid = Reference.MOD_ID, value = Side.CLIENT)
    public static class Models
    {
        @SubscribeEvent
        public static void register(ModelRegistryEvent event)
        {
            Items.ITEMS.forEach(Models::registerRender);
        }

        private static void registerRender(Item item)
        {
            if(item instanceof SubItems)
            {
// Path: src/main/java/com/mrcrayfish/skateboarding/Reference.java
// public class Reference
// {
// 	public static final String MOD_ID = "csm";
// 	public static final String MOD_NAME = "MrCrayfish's Skateboarding Mod";
// 	public static final String MOD_VERSION = "0.4.0";
// 	public static final String MC_VERSION = "1.12.2";
// 	public static final String CLIENT_PROXY_CLASS = "com.mrcrayfish.skateboarding.proxy.ClientProxy";
// 	public static final String SERVER_PROXY_CLASS = "com.mrcrayfish.skateboarding.proxy.CommonProxy";
// 	public static final String DEPENDENCIES = "required-after:obfuscate@[0.2.4,)";
// }
// 
// Path: src/main/java/com/mrcrayfish/skateboarding/item/SubItems.java
// public interface SubItems
// {
//     NonNullList<ResourceLocation> getModels();
// }


// Path: src/main/java/com/mrcrayfish/skateboarding/init/RegistrationHandler.java
import com.mrcrayfish.skateboarding.Reference;
import com.mrcrayfish.skateboarding.item.SubItems;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import java.util.LinkedList;
import java.util.List;

    @Mod.EventBusSubscriber(modid = Reference.MOD_ID)
    public static class Recipes
    {
        private static final List<IRecipe> RECIPES = new LinkedList<>();

        static void add(IRecipe recipe)
        {
            RECIPES.add(recipe);
        }

        @SubscribeEvent
        public static void register(final RegistryEvent.Register<IRecipe> event)
        {
            RECIPES.forEach(recipe -> event.getRegistry().register(recipe));
        }
    }

    @Mod.EventBusSubscriber(modid = Reference.MOD_ID, value = Side.CLIENT)
    public static class Models
    {
        @SubscribeEvent
        public static void register(ModelRegistryEvent event)
        {
            Items.ITEMS.forEach(Models::registerRender);
        }

        private static void registerRender(Item item)
        {
            if(item instanceof SubItems)
            {
                NonNullList<ResourceLocation> modelLocations = ((SubItems) item).getModels();