Пример #1
0
 void TrySetMatch(TiletypeMatch match, int tile)
 {
     if (tiletypeList == null)
     {
         tiletypeList = new Dictionary <int, TiletypeMatch>();
     }
     if (tiletypeList.ContainsKey(tile))
     {
         if (tiletypeList[tile].difference < match.difference)
         {
             return;
         }
     }
     tiletypeList[tile] = match;
 }
Пример #2
0
 void SetDirection(string direction, Dictionary <string, Tiletype> optionList, TiletypeMatch match)
 {
     if (direction == "*")
     {
         match.difference |= 1;
         foreach (var item in optionList.Values)
         {
             TrySetMatch(match, item.id);
         }
     }
     else
     {
         if (optionList.ContainsKey(direction))
         {
             TrySetMatch(match, optionList[direction].id);
         }
     }
 }
Пример #3
0
 void SetOptions(string direction, Dictionary <string, Tiletype> optionList, TiletypeMatch match)
 {
     if (direction == "*")
     {
         match.difference |= 1;
         foreach (var item in optionList.Values)
         {
             TrySetMatch(match, item.id);
         }
     }
     else
     {
         if (optionList.ContainsKey(direction))
         {
             TrySetMatch(match, optionList[direction].id);
         }
         else
         {
             Debug.LogError(direction + " is not a valid tile direction.");
         }
     }
 }
Пример #4
0
 void SetOptions(string shape, string special, string material, string variant, string direction, TiletypeMatch match)
 {
     if (shape == "*")
     {
         match.difference |= 16;
         foreach (var item in TiletypeTokenList.tileDefs.Values)
         {
             SetOptions(special, material, variant, direction, item, match);
         }
     }
     else
     {
         try
         {
             TiletypeShape tileShape = (TiletypeShape)Enum.Parse(typeof(TiletypeShape), shape);
             if (TiletypeTokenList.tileDefs.ContainsKey(tileShape))
             {
                 SetOptions(special, material, variant, direction, TiletypeTokenList.tileDefs[tileShape], match);
             }
         }
         catch (Exception)
         {
             Debug.LogError(shape + " is not a valid tile shape.");
             return;
         }
     }
 }
Пример #5
0
 void SetOptions(string special, string material, string variant, string direction,
                 Dictionary <TiletypeSpecial,
                             Dictionary <TiletypeMaterial,
                                         Dictionary <TiletypeVariant,
                                                     Dictionary <string, Tiletype> > > > optionList, TiletypeMatch match)
 {
     if (special == "*")
     {
         match.difference |= 8;
         foreach (var item in optionList.Values)
         {
             SetOptions(material, variant, direction, item, match);
         }
     }
     else
     {
         try
         {
             TiletypeSpecial tileSpecial = (TiletypeSpecial)Enum.Parse(typeof(TiletypeSpecial), special);
             if (optionList.ContainsKey(tileSpecial))
             {
                 SetOptions(material, variant, direction, optionList[tileSpecial], match);
             }
         }
         catch (Exception)
         {
             Debug.LogError(special + " is not a valid tile special.");
             return;
         }
     }
 }
Пример #6
0
 void SetOptions(string variant, string direction, Dictionary <TiletypeVariant, Dictionary <string, Tiletype> > optionList, TiletypeMatch match)
 {
     if (variant == "*")
     {
         match.difference |= 2;
         foreach (var item in optionList.Values)
         {
             SetOptions(direction, item, match);
         }
     }
     else
     {
         try
         {
             TiletypeVariant tileVariant = (TiletypeVariant)Enum.Parse(typeof(TiletypeVariant), variant);
             if (optionList.ContainsKey(tileVariant))
             {
                 SetOptions(direction, optionList[tileVariant], match);
             }
         }
         catch (Exception)
         {
             Debug.LogError(variant + " is not a valid tile variant.");
             return;
         }
     }
 }