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; }
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); } } }
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."); } } }
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; } } }
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; } } }
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; } } }