public void AddListener(AnTile t) { if (t0 == null) { t0 = t; } else if (t1 == null) { t1 = t; } else { Debug.Log("We've got a problem (" + t0.x + " " + t0.y + ") (" + t1.x + " " + t1.y + ") (" + " " + t.x + " " + t.y + ")"); } }
public IEnumerator TileSetup() { tileMap = new AnTile[height][]; for (int h = 0; h < height; h++) { tileMap[h] = new AnTile[width]; for (int w = 0; w < width; w++) { AnTile localTile = new AnTile(w, h); AssignTileVertices(localTile); tileMap[h][w] = localTile; } yield return(null); } yield return(null); }
public void UpdateTile(AnTile anTile, int sW, int sH) { //TODO allow tiles to be updated from outside sources }
private void AssignTileVertices(AnTile localTile) { int x = localTile.x; int y = localTile.y; int wShift = y % 2; int baseY = y * 2; TileVertex v0 = null; TileVertex v1 = null; TileVertex v2 = null; TileVertex v3 = null; TileVertex v4 = null; TileVertex v5 = null; if (x != width - 1) { v0 = vertexMap[baseY + 3][x + wShift]; v1 = vertexMap[baseY + 2][x + 1]; v2 = vertexMap[baseY + 1][x + 1]; v3 = vertexMap[baseY][x + wShift]; v4 = vertexMap[baseY + 1][x]; v5 = vertexMap[baseY + 2][x]; } else { if (wShift == 0) { v0 = vertexMap[baseY + 3][x]; v1 = vertexMap[baseY + 2][0]; v2 = vertexMap[baseY + 1][0]; v3 = vertexMap[baseY][x]; v4 = vertexMap[baseY + 1][x]; v5 = vertexMap[baseY + 2][x]; } else { v0 = vertexMap[baseY + 3][0]; v1 = vertexMap[baseY + 2][0]; v2 = vertexMap[baseY + 1][0]; v3 = vertexMap[baseY][0]; v4 = vertexMap[baseY + 1][x]; v5 = vertexMap[baseY + 2][x]; } } localTile.v0 = v0; localTile.v1 = v1; localTile.v2 = v2; localTile.v3 = v3; localTile.v4 = v4; localTile.v5 = v5; localTile.SetBorder("uRBorder", v0.GetSharedBorder(v1)); localTile.SetBorder("rBorder", v1.GetSharedBorder(v2)); localTile.SetBorder("dRBorder", v2.GetSharedBorder(v3)); localTile.SetBorder("dLBorder", v3.GetSharedBorder(v4)); localTile.SetBorder("lBorder", v4.GetSharedBorder(v5)); localTile.SetBorder("uLBorder", v5.GetSharedBorder(v0)); }