Example #1
0
        public void Execute(IConsoleShell shell, string argStr, string[] args)
        {
            var prototypeManager = IoCManager.Resolve <IPrototypeManager>();
            var entityManager    = IoCManager.Resolve <IEntityManager>();
            var gameTicker       = entityManager.EntitySysManager.GetEntitySystem <GameTicker>();

            if (args.Length is not(2 or 4 or 5))
            {
                shell.WriteError(Loc.GetString("shell-wrong-arguments-number"));
                return;
            }

            if (prototypeManager.TryIndex <GameMapPrototype>(args[0], out var gameMap))
            {
                if (!int.TryParse(args[1], out var mapId))
                {
                    return;
                }

                var loadOptions = new MapLoadOptions();
                var stationName = args.Length == 5 ? args[4] : null;

                if (args.Length >= 4 && int.TryParse(args[2], out var x) && int.TryParse(args[3], out var y))
                {
                    loadOptions.Offset = new Vector2(x, y);
                }
                var(ents, grids) = gameTicker.LoadGameMap(gameMap, new MapId(mapId), loadOptions, stationName);
                shell.WriteLine($"Loaded {ents.Count} entities and {grids.Count} grids.");
            }
            else
            {
                shell.WriteError($"The given map prototype {args[0]} is invalid.");
            }
        }
Example #2
0
        public void Execute(IConsoleShell shell, string argStr, string[] args)
        {
            if (args.Length < 2)
            {
                return;
            }

            if (!int.TryParse(args[0], out var intMapId))
            {
                return;
            }

            var mapId = new MapId(intMapId);

            // no loading into null space
            if (mapId == MapId.Nullspace)
            {
                shell.WriteError("Cannot load into nullspace.");
                return;
            }

            var mapManager = IoCManager.Resolve <IMapManager>();

            if (!mapManager.MapExists(mapId))
            {
                shell.WriteError("Target map does not exist.");
                return;
            }

            var loadOptions = new MapLoadOptions();

            if (args.Length > 2)
            {
                loadOptions.StoreMapUids = bool.Parse(args[2]);
            }

            var mapLoader = IoCManager.Resolve <IMapLoader>();

            mapLoader.LoadBlueprint(mapId, args[1], loadOptions);
        }