public void UpdateRadarSettings(RadarSettings updated) { _logger.debugLog("Updating settings", "UpdateRadarSettings"); // Process assginments List <long> unassign = _settings.assignedIds.Except(updated.assignedIds).ToList(); List <long> assign = updated.assignedIds.Except(_settings.assignedIds).ToList(); foreach (Radar r in _allRadars) { if (unassign.Contains(r.entID)) { UnassignedRadar(r); } else if (assign.Contains(r.entID)) { AssignRadar(r); } } _settings.range = updated.range; _settings.frequency = updated.frequency; RecalculateSectorCoverage(); ReclassifySystem(); }
/// <summary> /// Deserializes data saved in the world file /// </summary> private void LoadSavedData() { if (Helpers.IsServer) { _logger.debugLog("Starting load", "LoadSavedData"); if (Entity.Storage.ContainsKey(Constants.GUIDRadarSettings)) { _logger.debugLog("Loading saved radar settings: " + Entity.Storage[Constants.GUIDRadarSettings], "LoadSavedData"); RadarSettings settings = MyAPIGateway.Utilities.SerializeFromXML <RadarSettings>(Entity.Storage[Constants.GUIDRadarSettings]); UpdateRadarSettings(settings); } } else { _logger.debugLog("Getting radar settings from server", "LoadSavedData"); Message <long, long> request = new Message <long, long>(Entity.EntityId, 0); MyAPIGateway.Multiplayer.SendMessageToServer( Constants.MIDGetRadarSettingsServer, request.ToXML()); } }
public static List <ClassifiedObject> ScanCreatures(RadarSettings settings, Core ArcheBuddyCore) { List <Creature> AllCreatures = ArcheBuddyCore.getCreatures(); List <ClassifiedObject> FilteredCreatures = new List <ClassifiedObject>(AllCreatures.Count); foreach (Creature c in AllCreatures) { if (c.type == BotTypes.Housing && settings.HouseScanSettings.ShowRealEstate) { Housing h = (Housing)c; //this is a house, but what kind? if (h.housingId == 267) //Scarecrow Garden { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.ScarecrowGarden, obj = c }); continue; } else if (h.housingId == 89) //Scarecrow Farm { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.ScarecrowFarm, obj = c }); continue; } else if (h.housingId == 171 || h.housingId == 199 || h.housingId == 182 || h.housingId == 200 || h.housingId == 202 || h.housingId == 204 || //actually some of these are Manors h.housingId == 194 || h.housingId == 203 || h.housingId == 201 || h.housingId == 197) //ThatchedFarmhouse or otherwise 24x24 { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.Farmhouse, obj = c }); continue; } else if (h.housingId >= 172 && h.housingId <= 181) //Small house { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.SmallHousing, obj = c }); continue; } else if (h.housingId == 41 || h.housingId == 42 || h.housingId == 43 || h.housingId == 90) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.HousingWorkbench, obj = c }); continue; } else if (false) { //i don't know what 28x28 or greater houses look like yet //FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.LargeHousing, obj = c }); } } if (c.type == BotTypes.Player) { if (ArcheBuddyCore.isAlly(c) && settings.ActiveTab.ShowAlliedPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.FriendlyPlayer, obj = c }); continue; } else if (ArcheBuddyCore.isEnemy(c) && settings.ActiveTab.ShowEnemyPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.EnemyPlayer, obj = c }); continue; } } if (c.type == BotTypes.Npc) { //ignore Glorious Nui because, who cares if (c.name.Equals("Glorious Nui")) { continue; } if (c.factionId == 1054) { continue; //ignore fast travel portals } if (ArcheBuddyCore.isAlly(c) && settings.ActiveTab.ShowFriendlyNPCs) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.FriendlyNPC, obj = c }); continue; } else if (ArcheBuddyCore.isEnemy(c) && settings.ActiveTab.ShowEnemyNPCs) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.EnemyNPC, obj = c }); continue; } } if (c.type == BotTypes.Slave) { Slave s = (Slave)c; if (s.slaveId == 14 || s.slaveId == 76) //clippers { if (ArcheBuddyCore.isAlly(s) && settings.ActiveTab.ShowAlliedPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.FriendlyClipper, obj = s }); continue; } else if (ArcheBuddyCore.isEnemy(s) && settings.ActiveTab.ShowEnemyPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.EnemyClipper, obj = s }); continue; } } else if (s.slaveId == 110) //fishing boats { if (ArcheBuddyCore.isAlly(s) && settings.ActiveTab.ShowAlliedPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.FriendlyFishingBoat, obj = s }); continue; } else if (ArcheBuddyCore.isEnemy(s) && settings.ActiveTab.ShowEnemyPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.EnemyFishingBoat, obj = s }); continue; } } else if (s.slaveId == 75) //merchant ships { if (ArcheBuddyCore.isAlly(s) && settings.ActiveTab.ShowAlliedPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.FriendlyMerchantShip, obj = s }); continue; } else if (ArcheBuddyCore.isEnemy(s) && settings.ActiveTab.ShowEnemyPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.EnemyMerchantShip, obj = s }); continue; } } else if (s.slaveId == 21) //galleons { if (ArcheBuddyCore.isAlly(s) && settings.ActiveTab.ShowAlliedPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.FriendlyGalleon, obj = s }); continue; } else if (ArcheBuddyCore.isEnemy(s) && settings.ActiveTab.ShowEnemyPlayers) { FilteredCreatures.Add(new ClassifiedObject { category = ObjectCategory.EnemyGalleon, obj = s }); continue; } } } if (c.type == BotTypes.Transfer) { //it's an airship or carriage } } return(FilteredCreatures); }