package com.agilemods.materiamuto.common.emc; import com.agilemods.materiamuto.api.wrapper.VanillaStackWrapper; import com.google.common.collect.Lists; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import java.util.Comparator; import java.util.LinkedList; public class FuelRegistry { public static final Comparator<VanillaStackWrapper> EMC_COMPARATOR = new Comparator<VanillaStackWrapper>() { @Override public int compare(VanillaStackWrapper s1, VanillaStackWrapper s2) { double emc1 = EMCRegistry.getEMC(s1); double emc2 = EMCRegistry.getEMC(s2); if (emc1 < emc2) { return -1; } if (emc1 > emc2) { return 1; } return 0; } }; private static LinkedList<VanillaStackWrapper> fuels = Lists.newLinkedList(); public static void initialize() { fuels.clear(); registerFuel(new ItemStack(Items.coal, 1, 1)); registerFuel(new ItemStack(Items.redstone)); registerFuel(new ItemStack(Blocks.redstone_block)); registerFuel(new ItemStack(Items.coal)); registerFuel(new ItemStack(Blocks.coal_block)); registerFuel(new ItemStack(Items.gunpowder)); registerFuel(new ItemStack(Items.glowstone_dust)); registerFuel(new ItemStack(Items.blaze_powder)); registerFuel(new ItemStack(Blocks.glowstone)); } private static void registerFuel(ItemStack fuel) { if (EMCRegistry.getEMC(fuel) > 0) { fuels.add(new VanillaStackWrapper(fuel)); } } public static boolean isFuel(ItemStack itemStack) { return fuels.contains(new VanillaStackWrapper(itemStack)); } public static ItemStack getNextFuel(ItemStack fuel) { if (!isFuel(fuel)) return fuel; VanillaStackWrapper stackWrapper = new VanillaStackWrapper(fuel); int index = fuels.indexOf(stackWrapper); if (index <= fuels.size()) return fuel; return fuels.get(index + 1).toItemStack(); } }