void FindLiftA(Room r) { for (int i = 0; i < lifts.Count; i++) { //Specific Basement Case: if (GlobalControl.FloorNum == 0) { //Specific Elavator Usecases //Basement Player on B side if (ClassB_dropd.value < 4) { Start1.transform.position = new Vector3(lifts[1].x, lifts[1].y, 0); } //Basement Player on D side: if (ClassB_dropd.value >= 4) { Start1.transform.position = new Vector3(lifts[2].x, lifts[2].y, 0); } } //Specific 2F Case if (GlobalControl.FloorNum == 3) { //Specific Elavator Usecases //Basement Player on A side if (ClassB_dropd.value < 23) { Start1.transform.position = new Vector3(lifts[0].x, lifts[0].y, 0); } //Basement Player on D side: if (ClassB_dropd.value >= 23) { Start1.transform.position = new Vector3(lifts[2].x, lifts[2].y, 0); } } if (lifts[i].lift.ToString() == r.lift.ToString()) { if (lifts[i].floorAccess[GlobalControl.FloorNum]) { Start1.transform.position = new Vector3(lifts[i].x, lifts[i].y, 0); prevStartPos = new Vector3(lifts[i].x, lifts[i].y, 0); DestinationLift = lifts[i]; return; } else { return; } } } }
/// <summary> /// /// </summary> /// <param name="stairs"></param> /// <param name="liftSvc"></param> private void MakeLifts(List <CompassBox> stairs, int liftSvc) { var liftMatl = new Material(new Color(1.0f, 0.9f, 0.4f, 0.8f), 0.0f, 0.0f, false, null, false, Guid.NewGuid(), "lift"); var liftPolys = new List <Polygon>() { Polygon.Rectangle(liftSize, liftSize) }; for (var i = 0; i < (LiftQuantity * 0.5) - 1; i++) { var liftPerim = Polygon.Rectangle(liftSize, liftSize); var liftTopo = new CompassBox(liftPerim); var lastTopo = new CompassBox(liftPolys.Last()); liftPolys.Add(liftPerim.MoveFromTo(liftTopo.SW, lastTopo.SE)); } var firstTopo = new CompassBox(liftPolys.First()); var stairTopo = stairs.First(); var makePolys = new List <Polygon>(); foreach (var polygon in liftPolys) { makePolys.Add(polygon.MoveFromTo(firstTopo.SW, stairTopo.SE).Rotate(Position, Rotation)); } liftPolys.Clear(); liftPolys.Add(Polygon.Rectangle(liftSize, liftSize)); for (var i = 0; i < (LiftQuantity * 0.5) - 1; i++) { var liftPerim = Polygon.Rectangle(liftSize, liftSize); var liftTopo = new CompassBox(liftPerim); var lastTopo = new CompassBox(liftPolys.Last()); liftPolys.Add(liftPerim.MoveFromTo(liftTopo.SW, lastTopo.SE)); } firstTopo = new CompassBox(liftPolys.First()); stairTopo = stairs.Last(); foreach (var polygon in liftPolys) { makePolys.Add(polygon.MoveFromTo(firstTopo.NW, stairTopo.NE).Rotate(Position, Rotation)); } var liftSvcFactor = 0; foreach (var polygon in makePolys) { var lastLevel = Levels.SkipLast((int)liftSvc * liftSvcFactor).Last(); var liftHeight = lastLevel.Elevation - Levels.First().Elevation; if (liftHeight > 10.0) { var extrude = new Elements.Geometry.Solids.Extrude(polygon, liftHeight, Vector3.ZAxis, false); var geomRep = new Representation(new List <Elements.Geometry.Solids.SolidOperation>() { extrude }); Lifts.Add(new LiftShaft(polygon, Vector3.ZAxis, Rotation, Levels.First().Elevation, liftHeight, polygon.Area() * liftHeight, "", new Transform(0.0, 0.0, Levels.First().Elevation), liftMatl, geomRep, false, Guid.NewGuid(), "")); } liftSvcFactor++; } }
private JourneyTemplate Gather(string journeyTemplateName) { return(new JourneyTemplate { Name = journeyTemplateName, RouteDistance = RouteDistance, Lifts = Lifts.Select(lift => new LiftTemplate { LiftDistance = lift.LiftDistance, PassengerName = lift.PassengerName }).ToList() }); }
private void Fill(JourneyTemplate journeyTemplate) { RouteDistance = journeyTemplate.RouteDistance; Lifts.Clear(); foreach (var liftTemplate in journeyTemplate.Lifts) { Lifts.Add(new LiftViewModel { LiftDistance = liftTemplate.LiftDistance, PassengerName = liftTemplate.PassengerName }); } }
public void Tick() { if (((Calls == null) || Calls.Count < 1)) { return; } Lift elevator = new Lift(Lifts[0].Id, Lifts[0].Floor, doorsOpen: true); Lifts.Remove(Lifts[0]); Lifts.Add(elevator); Calls.Remove(Calls[0]); }
private void AddJourney() { var journeyId = _idFactory.Create(); try { var lifts = Lifts.Select(lift => lift.ToDto()); _commandDispatcher.Dispatch(new AddJourneyWithLiftsCommand(journeyId, RouteDistance, DateOfOccurrence, lifts)); _eventBus.Publish(new JourneyWithLiftsAddedEvent(journeyId)); Notification.Replace(new SuccessNotification("Added successfuly.")); } catch (Exception e) { Notification.Replace(new ErrorNotification(e.Message)); } }
public string TravelDirection(Lifts DestinationLift) { if (GlobalControl.FloorNum > FloorB_dropd.value) { Direction = Directions.Down; } if (GlobalControl.FloorNum < FloorB_dropd.value) { Direction = Directions.Up; } if (GlobalControl.FloorNum == FloorB_dropd.value) { Direction = Directions.SameFloor; } return(Direction.ToString()); }