private static TileConditionSet[] CreateDefaultTileConditionSets() { var list = new List <TileConditionSet>(); foreach (var a in (TileSpriteType[])Enum.GetValues(typeof(TileSpriteType))) { var tileCondSet = new TileConditionSet(); tileCondSet.TileSpriteType = a; list.Add(tileCondSet); } return(list.ToArray()); }
private bool MatchTileCondition(TileConditionSet set, Vector3Int position, ITilemap tilemap) { foreach (var dir in (TileDirectionType[])Enum.GetValues(typeof(TileDirectionType))) { TileConditionType condType = set[dir]; if (condType == TileConditionType.Optional) { continue; } var newPos = position; var offset = dir.ToVector2(); newPos.x += offset.x; newPos.y += offset.y; var tile = tilemap.GetTile(newPos); if (!((tile == null && condType == TileConditionType.Missing) || (tile != null && condType == TileConditionType.Exist))) { return(false); } } return(true); }