[Test] public void ShouldNotChangeWhenThereIsNoOverlapBetweenGroups() { corePosition = new Position(-1, 0); coreBlock = new Block(corePosition); core = new BlockGroup(new List <Block> { coreBlock }, Mock.Basic <Movement>(), merging); merging.Merge(core, new Translation(1, 0)); Assert.That(corePosition, Is.EqualTo(new Position(-1, 0))); Assert.That(groupPosition, Is.EqualTo(new Position(0, 0))); Assert.That(core.IsEmpty(), Is.False); Assert.That(group.IsEmpty(), Is.False); }
[Test] public void ShouldMergeGroupIntoCoreIfItOverlap() { corePosition = new Position(0, 0); coreBlock = new Block(corePosition); core = new BlockGroup(new List <Block> { coreBlock }, Mock.Basic <Movement>(), merging); merging.Merge(core, new Translation(1, 0)); Assert.That(corePosition, Is.EqualTo(new Position(0, 0))); Assert.That(groupPosition, Is.EqualTo(new Position(1, 0))); Assert.That(core.IsEmpty(), Is.False); Assert.That(group.IsEmpty(), Is.True); }
public void UnloadDistantChunks(int chunkX, int chunkY, int chunkZ, int radius) { #if UNITY_EDITOR if (!Application.isPlaying) { return; } #endif for (int i = 0; i < blockGroups.Count; i++) { BlockGroup g = blockGroups[i] as BlockGroup; g.UnloadDistantChunks(chunkX, chunkY, chunkZ, radius); if (g.IsEmpty()) { blockGroups.RemoveAt(i--); } } }