public virtual void Add(T gridMember) { Size.Invalidate(); // Assign controller reference if (gridMember.GetIsController() && Controller == null) { Controller = gridMember; } GridMembers.Add(gridMember); gridMember.AddGridTotals(Totals); // Get grid positions of blueprint block var tilePositions = GridUtils.GetOccupiedTilesByAnchor(gridMember); EnsureNeighbourKeyIsCreated(gridMember); // Add neighbour references foreach (var neighbour in this.GetNeighbours(tilePositions)) { NeighbourDict[neighbour].Add(gridMember); NeighbourDict[gridMember].Add(neighbour); } foreach (var tilePosition in tilePositions) { OccupiedTiles.Add(tilePosition, gridMember); } }
protected void Awake() { _gridObjectManager = FindObjectOfType <GridObjectManager>(); HealthObj = GetComponentInChildren <HealthComponent>(); HealthObj.OnHealthChanged += HealthChanged; // if this has no tiles, add the main tile if (OccupiedTiles.Count == 0) { OccupiedTiles.Add(Vector2Int.zero); } }