protected GameObject get_available_tile(int radius, int hexadrant) { HexadrantTiles ht = radius_tiles[radius][hexadrant]; GameObject gt = ht.select_random(randomizer, true); return(gt); }
protected void make_map(int r, ColorizeMethod colorize, string prefab_name) { tiles = new Dictionary <int, Dictionary <int, Dictionary <int, GameObject> > >(); radius_tiles = new Dictionary <int, Dictionary <int, HexadrantTiles> >(); for (int x = -r; x <= r; x++) { for (int y = -r; y <= r; y++) { int z = -(x + y); if (Mathf.Abs(z) > r) { continue; } if (!tiles.ContainsKey(x)) { tiles[x] = new Dictionary <int, Dictionary <int, GameObject> >(); } if (!tiles[x].ContainsKey(y)) { tiles[x][y] = new Dictionary <int, GameObject>(); } GameObject hex_sprite = (GameObject)Instantiate(Resources.Load(prefab_name)); HexGrid hex_grid = hex_sprite.GetComponent <HexGrid>(); Vector3 pl = hex_grid.spawn(x, y, z); hex_sprite.transform.position = pl; int radius = hex_grid.radius; int hexadrant = hex_grid.hexadrant; if (!radius_tiles.ContainsKey(radius)) { radius_tiles[radius] = new Dictionary <int, HexadrantTiles>(); } if (!radius_tiles[radius].ContainsKey(hexadrant)) { radius_tiles[radius][hexadrant] = new HexadrantTiles(); } radius_tiles[radius][hexadrant].Add(hex_sprite); colorize(hex_sprite, r); tiles[x][y][z] = hex_sprite; if (z > r) { break; } } } }