public SystemState(StarSystem system, Entity faction) { StarSystem = system; SystemContacts = system.GetSensorContacts(faction.Guid); _sensorChanges = SystemContacts.Changes.Subscribe(); PulseMgr = system.ManagerSubpulses; _faction = faction; foreach (Entity entityItem in StarSystem.GetEntitiesByFaction(faction.Guid)) { var entityState = new EntityState(entityItem);// { Name = "Unknown" }; if (entityItem.HasDataBlob <NameDB>()) { entityState.Name = entityItem.GetDataBlob <NameDB>().GetName(faction); EntityStatesWithNames.Add(entityItem.Guid, entityState); } if (entityItem.HasDataBlob <PositionDB>()) { EntityStatesWithPosition.Add(entityItem.Guid, entityState); } if (entityItem.HasDataBlob <ColonyInfoDB>()) { EntityStatesColonies.Add(entityItem.Guid, entityState); } } var listnerblobs = new List <int>(); listnerblobs.Add(EntityManager.DataBlobTypes[typeof(PositionDB)]); AEntityChangeListner changeListner = new EntityChangeListner(StarSystem, faction, listnerblobs);//, listnerblobs); _changeListner = changeListner; foreach (SensorContact sensorContact in SystemContacts.GetAllContacts()) { var entityState = new EntityState(sensorContact) { Name = "Unknown" }; EntityStatesWithNames.Add(sensorContact.ActualEntityGuid, entityState); EntityStatesWithPosition.Add(sensorContact.ActualEntityGuid, entityState); } }
private SystemState(StarSystem system) { StarSystem = system; //SystemContacts = system.FactionSensorContacts[faction.ID]; //_sensorChanges = SystemContacts.Changes.Subscribe(); PulseMgr = system.ManagerSubpulses; foreach (var entityItem in system.GetAllEntitiesWithDataBlob <NameDB>()) { var entityState = new EntityState(entityItem);// { Name = "Unknown" }; entityState.Name = entityItem.GetDataBlob <NameDB>().DefaultName; EntityStatesWithNames.Add(entityItem.Guid, entityState); if (entityItem.HasDataBlob <PositionDB>()) { EntityStatesWithPosition.Add(entityItem.Guid, entityState); } else if (entityItem.HasDataBlob <ColonyInfoDB>()) { EntityStatesColonies.Add(entityItem.Guid, entityState); } } var listnerblobs = new List <int>(); listnerblobs.Add(EntityManager.DataBlobTypes[typeof(PositionDB)]); AEntityChangeListner changeListner = new EntityChangeListnerSM(StarSystem);//, listnerblobs); _changeListner = changeListner; /* * foreach (SensorContact sensorContact in SystemContacts.GetAllContacts()) * { * var entityState = new EntityState(sensorContact) { Name = "Unknown" }; * EntityStates.Add(sensorContact.ActualEntity.ID, entityState); * }*/ }