private static void Test()
        {
            const string WHITELIST      = "/Buildable/|ResourceNode|ResourceDeposit";
            const string PROTECTED      = "MamIntegrated|HubTerminal|WorkBenchIntegrated|StorageIntegrated|GeneratorIntegratedBiomass";
            var          WLItems        = WHITELIST.Split('|');
            var          ProtectedItems = PROTECTED.Split('|');
            var          ZeroPos        = new Vector3();

            //Note to testers: Do not close the stream early. This protects you from overwriting the save file.
            using (var FS = File.OpenRead(Path.Combine(SaveDirectory, "Reset.sav")))
            {
                var F = SaveFile.Open(FS);

                var R = new Random();
                foreach (var E in F.Entries)
                {
                    if (E.EntryType == ObjectTypes.OBJECT_TYPE.OBJECT)
                    {
                        var o = (ObjectTypes.GameObject)E.ObjectData;
                        if (
                            !o.ObjectPosition.Equals(ZeroPos) &&
                            WLItems.Any(n => o.Name.Contains(n)) &&
                            !ProtectedItems.Any(n => o.Name.Contains(n)))
                        {
                            var newPos = Tools.TranslateToMap(new System.Drawing.PointF((float)R.NextDouble(), (float)R.NextDouble()));
                            newPos.Z         = 18000;
                            o.ObjectPosition = newPos;
                        }
                    }
                }

                //Show all entries
                Console.Error.WriteLine(string.Join("\r\n", F.Entries.OrderBy(m => m.Properties.Length).Select(m => m.ObjectData.Name).Distinct()));

                /* Test code to "align" things
                 * var o = (ObjectTypes.GameObject)e.ObjectData;
                 * o.ObjectPosition.X = (int)o.ObjectPosition.X;
                 * o.ObjectPosition.Y = (int)o.ObjectPosition.Y;
                 * o.ObjectPosition.Z = (int)o.ObjectPosition.Z;
                 *
                 * o.ObjectPosition.X -= o.ObjectPosition.X % 10;
                 * o.ObjectPosition.Y -= o.ObjectPosition.Y % 10;
                 * o.ObjectPosition.Z -= o.ObjectPosition.Z % 10;
                 * //o.ObjectRotation.W = o.ObjectRotation.X = o.ObjectRotation.Y = o.ObjectRotation.Z = 0;
                 * //Console.Error.WriteLine("{0} {1}", o.ObjectPosition, o.ObjectRotation);
                 * //*/

                /*
                 * //Duplicator test
                 * var BaseF = (SaveFileEntry)F.Entries.First(m => m.ObjectData.Name == "/Game/FactoryGame/Buildable/Building/Foundation/Build_Foundation_8x2_01.Build_Foundation_8x2_01_C").Clone();
                 * var BaseObject = (ObjectTypes.GameObject)BaseF.ObjectData;
                 * var BaseName = BaseObject.InternalName;
                 * BaseName = BaseName.Substring(0, BaseName.Length - 1);
                 * BaseObject.ObjectPosition.X = -324000;
                 * BaseObject.ObjectPosition.Y = -374000;
                 * BaseObject.ObjectPosition.Z = 18000;
                 *
                 * int ctr = F.Entries.Count(m => m.ObjectData.Name == "/Game/FactoryGame/Buildable/Building/Foundation/Build_Foundation_8x2_01.Build_Foundation_8x2_01_C");
                 * for (var x = 0; x < 940; x += 5)
                 * {
                 *  for (var y = 0; y < 940; y += 5)
                 *  {
                 *      var Copy = (SaveFileEntry)BaseF.Clone();
                 *      var o = (ObjectTypes.GameObject)Copy.ObjectData;
                 *      o.InternalName = BaseName + (ctr++).ToString();
                 *      o.ObjectPosition.X += x * 800;
                 *      o.ObjectPosition.Y += y * 800;
                 *      F.Entries.Add(Copy);
                 *  }
                 *  Console.Error.WriteLine(x);
                 * }
                 * Console.Error.WriteLine("Placed {0} foundations", ctr);
                 * //*/
                using (var FSOut = File.Create(Path.Combine(Environment.ExpandEnvironmentVariables(SAVEDIR), "Test-Edited.sav")))
                {
                    F.Export(FSOut);
                }
            }
        }