package WayofTime.bloodmagic.api.registry; import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.orb.BloodOrb; import lombok.Getter; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.ItemStack; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import java.util.ArrayList; import java.util.List; /** * This is only for those who wish to add a basic {@link BloodOrb}. If you need custom handling, * you will need your own item class. */ public class OrbRegistry { @Getter private static List orbs = new ArrayList(); public static void registerOrb(BloodOrb orb) { if (!orbs.contains(orb)) orbs.add(orb); else BloodMagicAPI.getLogger().error("Error adding orb %s. Orb already exists!", orb.toString()); } @SideOnly(Side.CLIENT) public static void registerOrbTexture(BloodOrb orb, String resourceLocation) { int meta = getIndexOf(orb); ModelBakery.addVariantName(BloodMagicAPI.getItem(BloodMagicAPI.ORB), resourceLocation); ModelLoader.setCustomModelResourceLocation(BloodMagicAPI.getItem(BloodMagicAPI.ORB), meta, new ModelResourceLocation(resourceLocation, "inventory")); } public static BloodOrb getOrb(int index) { return orbs.get(index); } public static int getIndexOf(BloodOrb orb) { return orbs.indexOf(orb); } public static boolean isEmpty() { return orbs.isEmpty(); } public static int getSize() { return orbs.size(); } public static ItemStack getOrbStack(BloodOrb orb) { return new ItemStack(BloodMagicAPI.getItem(BloodMagicAPI.ORB), 1, getIndexOf(orb)); } }