Пример #1
0
 /* Create tile */
 public Tile(Vector2 dimensions, Vector2 worldPosition, Vector2 gridPosition, int index)
 {
     _dims           = dimensions;
     _pos            = worldPosition;
     _gridPos        = gridPosition;
     _isOccupied     = false;
     _occupier       = null;
     _hasProp        = false;
     _prop           = null;
     _index          = index;
     _isOriginOfProp = false;
 }
Пример #2
0
    /* Set the tile as occupied, and reset the decorator (if it exists) */
    public bool SetOccupied(LevelTileEntity inhabitant, bool destroyPrevious = true, bool refreshSprites = false)
    {
        SetProp(null, destroyPrevious);
        if (_occupier && destroyPrevious)
        {
            _occupier.DestroyMe();
        }
        _isOccupied = (inhabitant != null);
        _occupier   = inhabitant;

        if (refreshSprites)
        {
            for (int i = 0; i < LevelManager.Instance.Grid.AllTiles.Count; i++)
            {
                if (LevelManager.Instance.Grid.AllTiles[i].IsOccupied)
                {
                    LevelManager.Instance.Grid.AllTiles[i].Occupier.RefreshSprite();
                }
            }
        }

        return(true);
    }