public DroneData(SDrone data, Drone src) { _source = src; Count = data.count; UID = data.uid; battery = data.battery; job = data.job; hub = data.hub; batterySwaps = data.totalBatterySwaps; hubsAssigned = data.totalHubHandovers; collisionOn = data.collisionOn; isWaiting = data.isWaiting; movement = data.movement; state = data.status; totalDelay = data.totalDelay; audibleDuration = data.totalAudibleDuration; packageWeight = data.totalPackageWeight; distanceTravelled = data.totalDistanceTravelled; totalEnergy = data.totalEnergy; targetAltitude = data.targetAltitude; previousPosition = _source.transform.position; waypoints = new Queue <Vector3>(); foreach (Vector3 point in data.waypointsQueue) { waypoints.Enqueue(point); } currentWaypoint = data.waypoint; previousWaypoint = data.previousWaypoint; foreach (uint id in data.completedJobs) { completedJobs.Add(id, AllCompleteJobs[id]); } }
public static Drone Load(SDrone data) { var d = PoolController.Get(ObjectPool.Instance).Get <Drone>(null, true); d.gameObject.SetActive(true); return(d.LoadState(data)); }
private bool LoadDrone(SDrone data, HashSet <uint> free) { if (data.hub == UID) { Drone drone = Drone.Load(data); drones.Add(drone.UID, drone); if (!data.inHub) { drone.transform.SetParent(Drone.ActiveDrones); } if (free.Contains(drone.UID)) { freeDrones.Add(drone.UID, drone); } return(true); } return(false); }