AutoTiles.AutoTilesBase.CalculateBitmask C# (CSharp) Метод

CalculateBitmask() приватный Метод

This method will calculate a bitmask value. To do this all surrounding cells are checked and the values will be accumulated.
private CalculateBitmask ( int x, int y, int l ) : int
x int
y int
l int
Результат int
        int CalculateBitmask(int x, int y, int l)
        {
            int spriteId = GetTileValueFromFramwork(x, y, l);
              int bitmask = 0;

              bool calculate;
              if (spriteId == -1) {
            calculate = false;
              } else if (SpriteIdIsSpecialTile(spriteId) && !TreatSpecialAsSolid) {
            calculate = false;
              } else if (SpriteIdIsSpecialTile(spriteId) && TreatSpecialAsSolid) {
            calculate = true;
              } else if (floorVariantIndices.Contains(spriteId)) {
            calculate = false;
              } else {
            calculate = true;
              }

              // if the spriteId is -1, it means that the tile itself is empty and
              // we do not need to change anything. Empty tiles stay empty.
              if (calculate) {
            bitmask += GetTileState(x, y + 1, l) * 1;
            bitmask += GetTileState(x + 1, y + 1, l) * 2;
            bitmask += GetTileState(x + 1, y, l) * 4;
            bitmask += GetTileState(x + 1, y - 1, l) * 8;
            bitmask += GetTileState(x, y - 1, l) * 16;
            bitmask += GetTileState(x - 1, y - 1, l) * 32;
            bitmask += GetTileState(x - 1, y, l) * 64;
            bitmask += GetTileState(x - 1, y + 1, l) * 128;
              }

              return bitmask;
        }