public void TestRegisterAnyChange() { var s = new VoxelChangeListener(); var world = TestWorldBuilder.createTestWorld(10, 10); var count = 0; var d = s.ChangedVoxels.Subscribe(_ => count++); world.GetVoxel(new Point2(4, 5)).Data.Type = new GameVoxelType("Type1"); world.GetVoxel(new Point2(5, 4)).Data.Type = new GameVoxelType("Type3"); world.GetVoxel(new Point2(5, 7)).Data.Type = new GameVoxelType("Type2"); s.ProcessChanges(world); world.ClearChangedFlags(); Assert.AreEqual(3, count); d.Dispose(); world.GetVoxel(new Point2(4, 5)).Data.Type = new GameVoxelType("Type1"); world.GetVoxel(new Point2(5, 4)).Data.Type = new GameVoxelType("Type3"); world.GetVoxel(new Point2(5, 7)).Data.Type = new GameVoxelType("Type2"); s.ProcessChanges(world); world.ClearChangedFlags(); Assert.AreEqual(3, count); }
public void TestAdjacentChange() { var s = new VoxelChangeListener(); var world = TestWorldBuilder.createTestWorld(10, 10); var target = world.GetVoxel(new Point2(5, 5)); var count = 0; s.RegisterAdjacentChange(target, _ => count++); world.GetVoxel(new Point2(4, 5)).Data.Type = new GameVoxelType("Type1"); world.GetVoxel(new Point2(5, 4)).Data.Type = new GameVoxelType("Type3"); world.GetVoxel(new Point2(5, 7)).Data.Type = new GameVoxelType("Type2"); s.ProcessChanges(world); world.ClearChangedFlags(); Assert.AreEqual(2, count); s.UnRegisterAdjacentChange(target); world.GetVoxel(new Point2(4, 5)).Data.Type = new GameVoxelType("Type1"); world.GetVoxel(new Point2(5, 4)).Data.Type = new GameVoxelType("Type3"); world.GetVoxel(new Point2(5, 7)).Data.Type = new GameVoxelType("Type2"); s.ProcessChanges(world); world.ClearChangedFlags(); Assert.AreEqual(2, count); }