예제 #1
0
 internal void SetOrderEntity(EntityState entity)
 {
     _orderingEntity    = entity.Entity;
     _shipFCDB          = _orderingEntity.GetDataBlob <FireControlAbilityDB>();
     _weaponNames       = new Dictionary <Guid, string>();
     _unAssignedWeapons = new List <Guid>();
     _systemEntityNames = new Dictionary <Guid, string>();
     _systemEntites     = new Dictionary <Guid, Entity>();
     for (int fcInstanceIndex = 0; fcInstanceIndex < _shipFCDB.FireControlInsances.Count; fcInstanceIndex++)
     {
         var fireControlInstance = _shipFCDB.FireControlComponents[fcInstanceIndex].GetDataBlob <ComponentInstanceInfoDB>();
     }
     for (int weaponInstanceIndex = 0; weaponInstanceIndex < _shipFCDB.WeaponInstanceStates.Count; weaponInstanceIndex++)
     {
         var    weaponInstanace = _shipFCDB.WeaponComponents[weaponInstanceIndex].GetDataBlob <ComponentInstanceInfoDB>();
         string wpnname         = weaponInstanace.GetName();
         _weaponNames.Add(weaponInstanace.OwningEntity.Guid, wpnname);
         //_weapons.Add(wpnname);
         if (weaponInstanace.OwningEntity.GetDataBlob <WeaponInstanceStateDB>().FireControl == null)
         {
             _unAssignedWeapons.Add(weaponInstanace.OwningEntity.Guid);
         }
     }
     foreach (var item in _state.FactionUIState.GetEntitiesForSystem(_orderingEntity.Manager))
     {
         if (item.HasDataBlob <NameDB>() && item.HasDataBlob <PositionDB>())
         {
             string name = item.GetDataBlob <NameDB>().GetName(_state.Faction);
             _systemEntityNames.Add(item.Guid, name);
             _systemEntites.Add(item.Guid, item);
         }
     }
 }
예제 #2
0
        internal void SetOrderEntity(EntityState entity)
        {
            _orderingEntity    = entity.Entity;
            _shipFCDB          = _orderingEntity.GetDataBlob <FireControlAbilityDB>();
            _weaponNames       = new Dictionary <Guid, string>();
            _unAssignedWeapons = new List <Guid>();
            _systemEntityNames = new Dictionary <Guid, string>();
            _sensorContacts    = new Dictionary <Guid, SensorContact>();

            var instancesDB = entity.Entity.GetDataBlob <ComponentInstancesDB>();

            if (instancesDB.TryGetComponentsByAttribute <BeamFireControlAtbDB>(out var fcinstances))
            {
                foreach (var instanceData in fcinstances)
                {
                    var fcdata = instanceData.Design.GetAttribute <BeamFireControlAtbDB>();
                }
            }



            for (int weaponInstanceIndex = 0; weaponInstanceIndex < _shipFCDB.WeaponInstances.Count; weaponInstanceIndex++)
            {
                var weaponInstanace = _shipFCDB.WeaponInstances[weaponInstanceIndex];

                string wpnname = weaponInstanace.GetName();
                _weaponNames.Add(weaponInstanace.ID, wpnname);
                //_weapons.Add(wpnname);
                if (weaponInstanace.GetAbilityState <WeaponState>().FireControl == null)
                {
                    _unAssignedWeapons.Add(weaponInstanace.ID);
                }
            }
            foreach (var item in _state.SelectedSystem.GetSensorContacts(_state.Faction.Guid).GetAllContacts())
            {
                var    entityItem = item.ActualEntity;
                string name       = entityItem.GetDataBlob <NameDB>().GetName(_state.Faction);
                _systemEntityNames.Add(item.ActualEntityGuid, name);
                _sensorContacts.Add(item.ActualEntityGuid, item);
            }

            /*
             * foreach (var item in _state.FactionUIState.GetEntitiesForSystem(_orderingEntity.Manager))
             * {
             *  if (item.HasDataBlob<NameDB>() && item.HasDataBlob<PositionDB>())
             *  {
             *      string name = item.GetDataBlob<NameDB>().GetName(_state.Faction);
             *      _systemEntityNames.Add(item.Guid, name);
             *      _systemEntites.Add(item.Guid, item);
             *
             *  }
             * }*/
        }