public bool HasRequirement(RecipeMode mode, ItemStack requirement, ItemStack[] input, out int used) { for (int i = 0; i < input.Length; i++) { if (input[i] == null) { continue; } bool thisone = true; if (input[i].Count < requirement.Count) { thisone = false; } else if (mode.HasFlag(RecipeMode.TYPE) && requirement.Name != input[i].Name) { thisone = false; } else if (mode.HasFlag(RecipeMode.SECONDARY) && requirement.SecondaryName != input[i].SecondaryName) { thisone = false; } else if (mode.HasFlag(RecipeMode.TEXTURE) && requirement.GetTextureName() != input[i].GetTextureName()) { thisone = false; } else if (mode.HasFlag(RecipeMode.MODEL) && requirement.GetModelName() != input[i].GetModelName()) { thisone = false; } else if (mode.HasFlag(RecipeMode.MODEL) && requirement.GetModelName() != input[i].GetModelName()) { thisone = false; } else if (mode.HasFlag(RecipeMode.SHARED) && !Inventory.ItemSharedAttrsMatch(requirement, input[i])) { thisone = false; } else if (mode.HasFlag(RecipeMode.LOCAL) && !Inventory.ItemAttrsMatch(requirement, input[i])) { thisone = false; } else if (mode.HasFlag(RecipeMode.DISPLAY) && requirement.DisplayName != input[i].DisplayName) { thisone = false; } else if (mode.HasFlag(RecipeMode.DESCRIPTION) && requirement.Description != input[i].Description) { thisone = false; } else if (mode.HasFlag(RecipeMode.COLOR) && requirement.DrawColor.A != input[i].DrawColor.A && requirement.DrawColor.R != input[i].DrawColor.R && requirement.DrawColor.G != input[i].DrawColor.G && requirement.DrawColor.B != input[i].DrawColor.B) { thisone = false; } else if (mode.HasFlag(RecipeMode.DATUM) && requirement.Datum != input[i].Datum) { thisone = false; } else if (mode.HasFlag(RecipeMode.BOUND) && requirement.IsBound != input[i].IsBound) { thisone = false; } else if (mode.HasFlag(RecipeMode.WEIGHT) && requirement.Weight != input[i].Weight) { thisone = false; } else if (mode.HasFlag(RecipeMode.VOLUME) && requirement.Volume != input[i].Volume) { thisone = false; } else if (thisone) { used = i; return(true); } } used = -1; return(false); }
public bool HasRequirement(RecipeMode mode, ItemStack requirement, ItemStack[] input, out int used) { for (int i = 0; i < input.Length; i++) { if (input[i] == null) { continue; } bool thisone = true; if (input[i].Count < requirement.Count) { thisone = false; } else if (mode.HasFlag(RecipeMode.TYPE) && requirement.Name != input[i].Name) { thisone = false; } else if (mode.HasFlag(RecipeMode.SECONDARY) && requirement.SecondaryName != input[i].SecondaryName) { thisone = false; } else if (mode.HasFlag(RecipeMode.TEXTURE) && requirement.GetTextureName() != input[i].GetTextureName()) { thisone = false; } else if (mode.HasFlag(RecipeMode.MODEL) && requirement.GetModelName() != input[i].GetModelName()) { thisone = false; } else if (mode.HasFlag(RecipeMode.MODEL) && requirement.GetModelName() != input[i].GetModelName()) { thisone = false; } else if (mode.HasFlag(RecipeMode.SHARED) && !Inventory.ItemSharedAttrsMatch(requirement, input[i])) { thisone = false; } else if (mode.HasFlag(RecipeMode.LOCAL) && !Inventory.ItemAttrsMatch(requirement, input[i])) { thisone = false; } else if (mode.HasFlag(RecipeMode.DISPLAY) && requirement.DisplayName != input[i].DisplayName) { thisone = false; } else if (mode.HasFlag(RecipeMode.DESCRIPTION) && requirement.Description != input[i].Description) { thisone = false; } else if (mode.HasFlag(RecipeMode.COLOR) && requirement.DrawColor.A != input[i].DrawColor.A && requirement.DrawColor.R != input[i].DrawColor.R && requirement.DrawColor.G != input[i].DrawColor.G && requirement.DrawColor.B != input[i].DrawColor.B) { thisone = false; } else if (mode.HasFlag(RecipeMode.DATUM) && requirement.Datum != input[i].Datum) { thisone = false; } else if (mode.HasFlag(RecipeMode.BOUND) && requirement.IsBound != input[i].IsBound) { thisone = false; } else if (mode.HasFlag(RecipeMode.WEIGHT) && requirement.Weight != input[i].Weight) { thisone = false; } else if (mode.HasFlag(RecipeMode.VOLUME) && requirement.Volume != input[i].Volume) { thisone = false; } else if (thisone) { used = i; return true; } } used = -1; return false; }