public TileMapConfig16 CreateNewLayer(string name, int order = 0) { TileMapConfig16 gml = Instantiate <TileMapConfig16>(prototypeMapLayer16, map.transform); gml.gameObject.name = name; gml.GetComponent <TilemapRenderer>().sortingOrder = order; //gml.level = levels.Count; return(gml); }
public IEnumerator AddLayers() { for (int i = 0; i < dataLevel.LayerCount(); i++) { yield return(AddLayer(i)); } improvement = CreateNewLayer32("Improvement", dataLevel.LayerCount()); overlay = CreateNewLayer("overlay", dataLevel.LayerCount() + 1); overlay.GetComponent <TilemapRenderer>().sortingLayerName = "Overlay"; yield return(AddBorder()); }
protected override void SetTile(TileMapConfig16 tile, NVector pos) { var b = S.Building().At(pos); if (b == null) { return; } //todo performance? tile.GetComponent <Tilemap>().SetTile(new Vector3Int(pos.x * 2 + 1, pos.y * 2, 0), Tile(b.Player())); }
protected override void SetTile(TileMapConfig16 tile, NVector pos) { if (S.ActPlayer().overlay.Get("res", pos) == 0) { return; } int align = 0; var rgk = GameMgmt.Get().data.map.levels[pos.level].ResGenKey(pos.x, pos.y); if (rgk == null) { return; } foreach (string key in rgk) { int act = GameMgmt.Get().data.map.ResGen(pos, key); var res = L.b.res[key]; //nothing to display? if (res.overlay.Count == 0 || act == 0) { continue; } string found = null; //find id foreach (var o in res.overlay) { var sp = SplitHelper.DelimiterInt(o); if (sp.value > act) { break; } found = sp.key; } //show it Tile t = GameMgmt.Get().newMap.tools.GetTile(found); tile.GetComponent <Tilemap>().SetTile(new Vector3Int(pos.x * 2 + (align % 2), pos.y * 2 + (align / 2), 0), t); align++; //full? if (align >= 4) { return; } } }
protected override void SetTile(TileMapConfig16 tile, NVector pos) { this._pos = pos; //how has it? Player player = S.Players().OverlayHighest(ID(), pos); if (player == null) { return; } tile.SetTile(this, new Vector3Int(pos.x, pos.y, 0), _frontier, false, player.Coat().color); }
public virtual void Run(Player player, TileMapConfig16 tile) { int level = S.Map().view.ActiveLevel; for (int x = 0; x < GameMgmt.Get().data.map.width; x++) { for (int y = 0; y < GameMgmt.Get().data.map.height; y++) { NVector nv = new NVector(x, y, level); if (player.fog.Visible(nv)) { SetTile(tile, nv); } } } }
private IEnumerator AddBorder() { yield return(GameMgmt.Get().load.ShowSubMessage($"Add border")); TileMapConfig16 t = CreateLayer16("Border", SortBorder).GetComponent <TileMapConfig16>(); t.transform.position = new Vector3(0, 0, -1); for (int x = -1; x <= GameMgmt.Get().data.map.width; x++) { t.SetTile(x, -1, border); t.SetTile(x, GameMgmt.Get().data.map.height, border); } yield return(GameMgmt.Get().load.ShowSubMessage($"Add vertical border")); for (int y = 0; y < GameMgmt.Get().data.map.height; y++) { t.SetTile(-1, y, border); t.SetTile(GameMgmt.Get().data.map.width, y, border); } }
public IEnumerator AddLayer(int layer) { TileMapConfig16 t = CreateNewLayer($"{layer} {layers.Count}", layer); TileMapConfig16 w = CreateNewLayer($"W{layer} {layers.Count}", layer).GetComponent <TileMapConfig16>(); string max = "/" + mapData.width + "/" + layers.Count; for (int x = 0; x < mapData.width; x++) { for (int y = 0; y < mapData.height; y++) { Vector3Int v = new Vector3Int(x, y, layer); int d = dataLevel.At(v); //skip? if (d == -1) { continue; } try { t.SetTile(dataLevel, v, L.b.terrains[d], false, Color.white); int q = dataLevel.At(v, true); w.SetTile(dataLevel, v, L.b.terrains[q], true, Color.white); } catch (Exception e) { Debug.Log(d + " " + L.b.terrains.Values().Count(terr => terr.defaultTile == d)); Debug.Log($"{x}/{dataLevel.Width()}/{mapData.width},{y}/{dataLevel.Height()}/{mapData.height}"); Debug.LogException(new InvalidDataException($"Field type {d} does not exist", e)); break; } } yield return(GameMgmt.Get().load.ShowSubMessage($"Loading {layer} {x}{max}")); } layers.Add(t); layersWinter.Add(w); w.gameObject.SetActive(false); }
private IEnumerator AddBorder() { yield return(GameMgmt.Get().load.ShowSubMessage($"Add border")); TileBase bTile = GameMgmt.Get().newMap.prototypeBorder; border = CreateNewLayer("Border", dataLevel.LayerCount() + 5); border.transform.position = new Vector3(0, 0, -1); for (int x = -1; x <= GameMgmt.Get().data.map.width; x++) { border.SetTile(x, -1, bTile); border.SetTile(x, GameMgmt.Get().data.map.height, bTile); } yield return(GameMgmt.Get().load.ShowSubMessage($"Add vertical border")); for (int y = 0; y < GameMgmt.Get().data.map.height; y++) { border.SetTile(-1, y, bTile); border.SetTile(GameMgmt.Get().data.map.width, y, bTile); } }
public override void Run(Player player, TileMapConfig16 tile) { _frontier = L.b.terrains["frontier"]; base.Run(player, tile); }
protected abstract void SetTile(TileMapConfig16 tile, NVector pos);