public void Merge(BlockGroup group, Translation lastTranslation) { if (group.Overlaps(core)) { group.Translate(lastTranslation.Negate()); core.Merge(group); } }
[Test] public void ShouldReturnFalseWhenNoBlocksOverlap() { Block apple = CreateBlock(1, 2); Block orange = CreateBlock(1, 1); BlockGroup fruit = CreateBlockGroup(apple, orange); Block tomato = CreateBlock(2, 2); Block carrot = CreateBlock(2, 3); BlockGroup vegetables = CreateBlockGroup(tomato, carrot); Assert.That(fruit.Overlaps(vegetables), Is.False); }
[Test] public void ShouldReturnTrueWhenAtLeastOneBlockOverlaps() { Block apple = CreateBlock(1, 2); Block orange = CreateBlock(1, 1); BlockGroup fruit = CreateBlockGroup(apple, orange); Block tomato = CreateBlock(2, 2); Block carrot = CreateBlock(1, 2); BlockGroup vegetables = CreateBlockGroup(tomato, carrot); Assert.That(fruit.Overlaps(vegetables), Is.True); }