Ejemplo n.º 1
0
        private void LoadAssignments(SHub hubData, List <SDrone> droneData, List <SBattery> batteryData)
        {
            var fd = new HashSet <uint>(hubData.freeDrones);
            var fb = new HashSet <uint>(hubData.freeBatteries);
            var cb = new HashSet <uint>(hubData.chargingBatteries);

            for (int i = batteryData.Count - 1; i >= 0; i--)
            {
                if (LoadBattery(batteryData[i], fb, cb))
                {
                    batteryData.RemoveAt(i);
                }
            }
            for (int i = droneData.Count - 1; i >= 0; i--)
            {
                if (LoadDrone(droneData[i], fd))
                {
                    droneData.RemoveAt(i);
                }
            }
            foreach (uint uid in hubData.exitingDrones)
            {
                deploymentQueue.Enqueue((Drone)drones[uid]);
            }
        }
Ejemplo n.º 2
0
 public HubData(SHub data, Hub hub, List <SDrone> droneData, List <SBattery> batteryData)
 {
     _source           = hub;
     UID               = data.count;
     energyConsumption = data.energy;
     InitializeCollections();
     LoadAssignments(data, droneData, batteryData);
     SetUpCollectionEvents();
 }
Ejemplo n.º 3
0
        public static Hub Load(SHub data, List <SDrone> drones, List <SBattery> batteries)
        {
            Hub hub = PoolController.Get(ObjectPool.Instance).Get <Hub>(null, true);

            hub.transform.position = data.position;
            hub.transform.SetParent(null);
            hub.gameObject.SetActive(true);
            hub.InPool = false;
            SimManager.AllHubs.Add(hub.UID, hub);

            hub._Data = new HubData(data, hub, drones, batteries);
            return(hub);
        }