Exemple #1
0
        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);
            }
        }
Exemple #2
0
    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);
        }
    }