public int getColumnHeight(int x) {
      if(caching && !columnHeightDirties[x]) {
        return _columnHeights[x];
      }
      columnHeightDirties[x] = false;
			for (int j = height - 1; j >= 0; j--) {
				if (grid[x][j]) {
					return (_columnHeights[x] = j+1);
				}
			}
			return (_columnHeights[x] = 0);
	}