protected override AutopilotActionList.AutopilotAction Parse(VRage.Game.ModAPI.IMyCubeBlock autopilot, string command, out string message) { byte[] oreType; if (command.Equals("arvest", StringComparison.InvariantCultureIgnoreCase)) { oreType = null; } else { if (string.IsNullOrWhiteSpace(command)) { message = "no ores specified"; return(null); } string[] splitComma = command.Split(','); List <byte> oreTypeList = new List <byte>(); m_activeOres.Clear(); foreach (string name in splitComma) { string trimmed = name.Trim(); Ore ore; if (!TryGetOre(trimmed, out ore)) { message = "Not ore: " + name; return(null); } byte[] oreIds; if (!OreDetector.TryGetMaterial(trimmed, out oreIds)) { message = "Failed to get material index: " + name; return(null); } m_activeOres.Add(ore); oreTypeList.AddArray(oreIds); } oreType = oreTypeList.ToArray(); } message = null; return(mover => new Miner(mover, oreType)); }