Example #1
0
        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);
            }
        }
Example #2
0
        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);
             * }*/
        }