private void ScriptControlledGrinding() { var count = 0; var lastground = "NULL"; var displayname = "NULL"; //Simple example of Script controlled grind handling foreach (var groupData in _GroupData) { groupData.RepairSystems.ScriptControlled = true; var listGrindable = groupData.RepairSystems.PossibleGrindTargets(); // //If nothing to grind or current grinding object no longer in list (allready grinded) if (groupData.RepairSystems.CurrentPickedGrindTarget == null || listGrindable.IndexOf(groupData.RepairSystems.CurrentPickedGrindTarget) < 0) { var rnd = new Random(); var randomized = listGrindable.OrderBy(item => rnd.Next()); foreach (var entry in randomized) { var theblock = entry.FatBlock; var blockname = "NULL"; blockname = StatusAndLogDisplay.BlockName(entry); try { try { if (entry.BlockDefinition.SubtypeName != null) { blockname = entry.BlockDefinition.SubtypeName; displayname = entry.BlockDefinition.SubtypeName; } if (theblock.DefinitionDisplayNameText != null) { blockname = blockname + "/" + theblock.DefinitionDisplayNameText; displayname = theblock.DefinitionDisplayNameText; } if (theblock.DisplayNameText != null) { blockname = blockname + "/" + theblock.DisplayNameText; displayname = theblock.DisplayNameText; } } catch { } if ((blockname.Contains("Armory") || blockname.Contains("Proficient") || blockname.Contains("Enhanced") || blockname.Contains("Exotic") || blockname.Contains("Elite") || blockname.Contains("Nanovirus") || blockname.Contains("Lockers") || blockname.Contains("Freight")) && GrindTech == "Y") // Blocks to grind if GrindTech is on { // _Program.Echo("Last Ground: " + lastground); // _Program.Echo(""); _Program.Echo("Grind: " + displayname); groupData.RepairSystems.CurrentPickedGrindTarget = entry; break; } if (blockname.Contains("Beacon") && GrindBeacon == "Y") // Blocks to be ground if GrindBeacon is on { //_Program.Echo("Last Ground: " + lastground); //_Program.Echo(""); _Program.Echo("Grind: " + displayname); groupData.RepairSystems.CurrentPickedGrindTarget = entry; break; } if ((blockname.Contains("Glowing") || blockname.Contains("Tritanium") || !blockname.Contains("Armor")) && GrindAll=="Y") //Blocks to be ground if GrindAll is on { //_Program.Echo("Last Ground: " + lastground); //_Program.Echo(""); _Program.Echo("Grind: " + displayname); groupData.RepairSystems.CurrentPickedGrindTarget = entry; break; } if ((blockname.Contains("AQD") || blockname.Contains("CubeBlock")) && GrindAll=="Y") // Blocks to be ignored if GrindAll is on { continue; } } catch { } count++; if (count > 1000) { break; } } _Program.Echo(""); _Program.Echo("Grind Ignored: " + count.ToString() + " Blocks"); _Program.Echo(""); _Program.Echo("Last Ground: " + lastground); } } }