const BlockType &left = Type(blocks[idx - 1]);
if (!left.fill.right) return false;
- const BlockType &top = Type(blocks[idx + Width()]);
- if (!top.fill.bottom) return false;
+ const BlockType &up = Type(blocks[idx + Width()]);
+ if (!up.fill.down) return false;
- const BlockType &bottom = Type(blocks[idx - Width()]);
- if (!bottom.fill.top) return false;
+ const BlockType &down = Type(blocks[idx - Width()]);
+ if (!down.fill.up) return false;
const BlockType &front = Type(blocks[idx + Width() * Height()]);
if (!front.fill.back) return false;
loaded.emplace_back(reg);
loaded.back().Position(pos);
gen(loaded.back());
+
+ // orientation testing
+ // for (int i = 0; i < Block::FACE_COUNT; ++i) {
+ // for (int j = 0; j < Block::TURN_COUNT; ++j) {
+ // loaded.back().BlockAt(512 * j + 2 * i) = Block(3 * (j + 1), Block::Face(i), Block::Turn(j));
+ // }
+ // }
+ // loaded.back().Invalidate();
+ // loaded.back().CheckUpdate();
} else {
to_generate.emplace_back(pos);
}