package itscakey.rubymod.init;

import itscakey.rubymod.Reference;
import itscakey.rubymod.RubyMod;
import itscakey.rubymod.items.ItemModArmour;
import itscakey.rubymod.items.ItemModAxe;
import itscakey.rubymod.items.ItemModFood;
import itscakey.rubymod.items.ItemModHoe;
import itscakey.rubymod.items.ItemModPickaxe;
import itscakey.rubymod.items.ItemModShovel;
import itscakey.rubymod.items.ItemModSword;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemArmor.ArmorMaterial;
import net.minecraft.item.ItemAxe;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemPickaxe;
import net.minecraft.item.ItemSpade;
import net.minecraft.item.ItemSword;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModItems {
	
	public static Item ruby_ingot;
	
	//Armour Materials
	public static ArmorMaterial rubyArmourMaterial = EnumHelper.addArmorMaterial("ruby_ingot", "rm:ruby_armour", 15, new int[]{2,6,5,2}, 10);
	
	//Tool Materials
	public static ToolMaterial rubyMaterial = EnumHelper.addToolMaterial("ruby_ingot", 2, 536, 5.0F, 2.0F, 12);
	
	//Armour
	public static ItemArmor ruby_helmet;
	public static ItemArmor ruby_chestplate;
	public static ItemArmor ruby_leggings;
	public static ItemArmor ruby_boots;
	
	//Tools
	public static ItemPickaxe ruby_pick;
	public static ItemHoe ruby_hoe;
	public static ItemAxe ruby_axe;
	public static ItemSpade ruby_shovel;
	public static ItemSword ruby_sword;
	
	//Food
	public static Item ruby_apple;
	
	public static void init() {
		ruby_ingot = new Item().setUnlocalizedName("ruby_ingot");
		
		//Armour
		ruby_helmet = new ItemModArmour(rubyArmourMaterial, 0, 0, "ruby_helmet");
		ruby_chestplate = new ItemModArmour(rubyArmourMaterial, 0, 1, "ruby_chestplate");
		ruby_leggings = new ItemModArmour(rubyArmourMaterial, 1, 2, "ruby_leggings");
		ruby_boots = new ItemModArmour(rubyArmourMaterial, 0, 3, "ruby_boots");
		
		//Tools
		ruby_pick = new ItemModPickaxe(rubyMaterial, "ruby_pickaxe");
		ruby_hoe = new ItemModHoe(rubyMaterial, "ruby_hoe");
		ruby_axe = new ItemModAxe(rubyMaterial, "ruby_axe");
		ruby_shovel = new ItemModShovel(rubyMaterial, "ruby_shovel");
		ruby_sword = new ItemModSword(rubyMaterial, "ruby_sword");
		
		//Food
		ruby_apple = new ItemModFood("ruby_apple", 4, 1.2f, false, new PotionEffect(Potion.regeneration.id, 6000, 2), new PotionEffect(Potion.healthBoost.id, 600, 3)).setAlwaysEdible();
		
	}
	
	public static void register() {
		registerItem(ruby_ingot);
		
		//Armour
		registerItem(ruby_helmet);
		registerItem(ruby_chestplate);
		registerItem(ruby_leggings);
		registerItem(ruby_boots);
		
		//Tools
		registerItem(ruby_pick);
		registerItem(ruby_axe);
		registerItem(ruby_hoe);
		registerItem(ruby_shovel);
		registerItem(ruby_sword);
		
		//Food
		registerItem(ruby_apple);
	}
	
	public static void registerRenders() {
		registerRender(ruby_ingot);
		
		//Armour
		registerRender(ruby_helmet);
		registerRender(ruby_chestplate);
		registerRender(ruby_leggings);
		registerRender(ruby_boots);
		
		//Tools
		registerRender(ruby_pick);
		registerRender(ruby_axe);
		registerRender(ruby_hoe);
		registerRender(ruby_shovel);
		registerRender(ruby_sword);
		
		//Food
		registerRender(ruby_apple);
	}

	public static void registerItem(Item item) {
		GameRegistry.registerItem(item, item.getUnlocalizedName().substring(5));
		System.out.println("Registered Item: " + item.getUnlocalizedName().substring(5));
	}
	
	public static void registerRender(Item item) {
		Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, 
				new ModelResourceLocation(Reference.MODID + ":" + item.getUnlocalizedName().substring(5), "Inventory"));
	}
	public static void registerRender(Item item, int meta, String fileName) {
		Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, 
				new ModelResourceLocation(Reference.MODID + ":" + fileName, "Inventory"));
	}
}
