using System; using System.Collections.Generic; using CIGEnums; using SUISSEngine; using UnityEngine; public class CIGDisasterManager : MonoBehaviour { protected void Start() { base.Invoke("AddSprites", 5f); } public void AddSprites() { int num = 0; for (int i = 0; i < this.grid.Size.u; i++) { for (int j = 0; j < this.grid.Size.v; j++) { bool index = this.getElementType(i - 1, j - 1) == (int)this.elementType; bool index2 = this.getElementType(i, j - 1) == (int)this.elementType; bool index3 = this.getElementType(i - 1, j) == (int)this.elementType; bool index4 = this.getElementType(i, j) == (int)this.elementType; int spriteNumber = this.GetSpriteNumber(index, index2, index3, index4); if (spriteNumber > 0) { GridTile gridTile; if (num < this.tiles.Count) { gridTile = this.tiles[num++]; gridTile.gameObject.SetActive(true); } else { GameObject gameObject = UnityEngine.Object.Instantiate(this.prefab); gridTile = gameObject.GetComponent(); this.tiles.Add(gridTile); num++; } SpriteRenderer component = gridTile.GetComponent(); component.sprite = this.sprites[spriteNumber]; gridTile.transform.parent = this.grid.transform; gridTile.index = new GridIndex(i, j); gridTile.UpdateTransform(); } } } } public void RemoveSprites() { foreach (GridTile gridTile in this.tiles) { gridTile.gameObject.SetActive(false); gridTile.transform.parent = base.transform; } } private int GetSpriteNumber(bool index1, bool index2, bool index3, bool index4) { int num = 0; if (index4) { num += 8; } if (index3) { num += 2; } if (index2) { num += 4; } if (index1) { num++; } return num; } private int getElementType(int u, int v) { if (u >= 0 && u < this.grid.Size.u && v >= 0 && v < this.grid.Size.v) { return this.grid[u, v].Type; } return 0; } [SelfReference] public IsometricGrid grid; public SurfaceType elementType; public GameObject prefab; public Sprite[] sprites; protected List tiles = new List(); }