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."); } }
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); }