Beispiel #1
0
 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);
 }
Beispiel #2
0
 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;
 }