public JobData(SJob data) { UID = data.uid; status = data.status; packageWeight = data.packageWeight; packageXArea = data.packageXarea; costFunction = new CostFunction(data.costFunction); if (data.status != JobStatus.Assigning) { created = new TimeKeeper.Chronos(data.createdUnity).SetReadOnly(); assignment = new TimeKeeper.Chronos(data.assignedTime).SetReadOnly(); deadline = new TimeKeeper.Chronos(data.deadline).SetReadOnly(); if (data.status != JobStatus.Delivering) { completed = new TimeKeeper.Chronos(data.completedOn).SetReadOnly(); pickup = data.pickup; dropoff = data.destination; } } else { created = TimeKeeper.Chronos.Get(); deadline = TimeKeeper.Chronos.Get() + costFunction.CompleteIn; earnings = costFunction.GetPaid(deadline - 1f, deadline); // aproximate earnings Vector3 o = data.pickup; o.y = 0; Vector3 d = data.destination; d.y = 0; pickup = LandingZoneIdentifier.Reposition(o); dropoff = LandingZoneIdentifier.Reposition(d); } }
public CustomJob(SJob job) { ID = job.uid.ToString(); Message = Time + " - " + job.custom; Server = (Drone)SimManager.AllDrones[job.droneUID]; OpenWindow = delegate { var j = SimManager.AllJobs[uint.Parse(ID)]; j?.OpenInfoWindow(); if (!Server.InPool) { AbstractCamera.Followee = Server.gameObject; } }; }
public Job(SJob data) { _Data = new JobData(data); }