FSO.SimAntics.VMArchitecture.SimulateCommands C# (CSharp) Method

SimulateCommands() public method

public SimulateCommands ( List commands, bool visualChange ) : int
commands List
visualChange bool
return int
        public int SimulateCommands(List<VMArchitectureCommand> commands, bool visualChange)
        {
            int cost;
            if (commands.Count == 0)
            {
                if (visualChange)
                {
                    //direct copy, no changes to make
                    WorldUI.Walls = Walls;
                    WorldUI.WallsAt = WallsAt;
                    WorldUI.Floors = Floors;
                }
                return 0;
            }
            else
            {
                RealMode = false;
                var oldWalls = Walls;
                var oldWallsAt = WallsAt;

                var oldFloors = Floors;

                WallsAt = new List<int>[Stories];
                for (int i = 0; i < Stories; i++)
                {
                    Array.Copy(Floors[i], VisFloors[i], Floors[i].Length);
                    Array.Copy(Walls[i], VisWalls[i], Walls[i].Length);
                    WallsAt[i] = new List<int>(oldWallsAt[i]);
                }
                Floors = VisFloors;
                Walls = VisWalls;
                cost = RunCommands(commands, visualChange);

                if (visualChange)
                {
                    //upload modified walls to blueprint
                    WorldUI.Walls = Walls;
                    WorldUI.WallsAt = WallsAt;
                    WorldUI.Floors = Floors;
                }

                Floors = oldFloors;
                Walls = oldWalls;
                WallsAt = oldWallsAt;
                RealMode = true;
            }
            return cost;
        }