package mods.ocminecart.common.assemble.util;
import mods.ocminecart.Settings;
import mods.ocminecart.common.items.ItemComputerCart;
import mods.ocminecart.common.items.ModItems;
import mods.ocminecart.common.util.ComputerCartData;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
import java.util.HashMap;
public class General {
public static Object[] validate(IInventory inventory, int maxcomplexity){
String need = ComponentCheck.checkRequiredComponents(inventory);
if(need!=null){
IChatComponent[] warnings = new IChatComponent[]{ new ChatComponentText(need+"!") };
return new Object[]{false, new ChatComponentText(EnumChatFormatting.RED+need), warnings};
}
if(Complexity.calculate(inventory)>maxcomplexity){
return new Object[]{false, new ChatComponentText(EnumChatFormatting.RED+"Complexity: "+Complexity.calculate(inventory)+" / "+maxcomplexity)};
}
return new Object[]{true, new ChatComponentText("Complexity: "+Complexity.calculate(inventory)+" / "+maxcomplexity)};
}
public static ItemStack createItemStack(int tier, HashMap<Integer,ItemStack> components){
ItemStack stack = new ItemStack(ModItems.item_ComputerCart,1);
ComputerCartData data = new ComputerCartData();
data.setComponents(components);
data.setTier(tier);
data.setEnergy(Settings.ComputerCartCreateEnergy);
ItemComputerCart.setData(stack, data);
return stack;
}
public static Object[] assemble(IInventory inventory, int tier){
HashMap<Integer, ItemStack> comp = new HashMap<Integer, ItemStack>();
int size = inventory.getSizeInventory();
for(int i=1;i<size;i+=1){
if(inventory.getStackInSlot(i)!=null) comp.put(i-1,inventory.getStackInSlot(i));
}
int energy = (tier<3) ? Settings.ComputerCartBaseCost+Settings.ComputerCartComplexityCost * Complexity.calculate(inventory) : 0;
return new Object[]{General.createItemStack(tier, comp), energy};
}
}