当前位置: 首页>>代码示例>>C#>>正文


C# Route.GetOption方法代码示例

本文整理汇总了C#中Route.GetOption方法的典型用法代码示例。如果您正苦于以下问题:C# Route.GetOption方法的具体用法?C# Route.GetOption怎么用?C# Route.GetOption使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Route的用法示例。


在下文中一共展示了Route.GetOption方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PostPlanRouteCallback

        public static void PostPlanRouteCallback(Route r, string routeType, string result)
        {
            try
            {
                if ((r.Follower != null) && (r.Follower.Target is Sim))
                {
                    if (((r.GetOption(Route.RouteOption.EnableSubwayPlanning)) || (r.GetOption2(Route.RouteOption2.EnableHoverTrainPlanning))) && !r.GetOption(Route.RouteOption.EnableUFOPlanning))
                    {
                        CheckAndUpdateRouteForPortals(r);
                    }

                    if (((routeType == "Replan") || (routeType == "ReplanFromPoint")) && r.GetOption(Route.RouteOption.PlanUsingStroller))
                    {
                        r.SetOption(Route.RouteOption.ReplanUsingStroller, false);
                    }

                    if (RoutingComponent.sPostPlanProfileCallback != null)
                    {
                        RoutingComponent.sPostPlanProfileCallback(r, routeType, result);
                    }
                }
            }
            catch (Exception e)
            {
                Common.Exception("PostPlanRouteCallback", e);
            }
        }
开发者ID:Robobeurre,项目名称:NRaas,代码行数:27,代码来源:AncientPortalRoutingHelper.cs

示例2: DoSingleRouteEx

        private bool DoSingleRouteEx(Route r, bool bAllowOverlays)
        {
            Common.StringBuilder msg = new Common.StringBuilder("DoSingleRouteEx");

            try
            {
                mbRouteLeadInPlaying = false;
                if ((bAllowOverlays && (r.GetDistanceRemaining() > TraitTuning.RouteDistanceForIdle)) && !r.GetOption(Route.RouteOption.DisableRouteLeadIns))
                {
                    if (!mOwnerSim.IsHoldingAnything() && RandomUtil.RandomChance01(TraitTuning.ChanceForRouteLeadIn))
                    {
                        mOwnerSim.OverlayComponent.UpdateInteractionFreeParts(AwarenessLevel.OverlayUpperbody);
                        uint segmentAtDistanceBeforeEnd = r.GetSegmentAtDistanceBeforeEnd(SimScriptAdaptor.DistanceToStopOverlay, true);
                        r.RegisterCallback(OnAboutToFinishRoute, RouteCallbackType.TriggerOnce, RouteCallbackConditions.EnteringSegment(segmentAtDistanceBeforeEnd));
                        r.RegisterCallback(OnRouteFinished, RouteCallbackType.TriggerOnce, new RouteCallbackCondition(RouteCallbackConditions.Ended));
                        mbRouteLeadInPlaying = mOwnerSim.IdleManager.PlayRouteLeadIn();
                        if (mbRouteLeadInPlaying)
                        {
                            OverlayComponent overlayComponent = mOwnerSim.OverlayComponent;
                            overlayComponent.OverlaysEnded += OnOverlaysEnded;
                        }
                    }
                    if (mOwnerSim.IsHuman)
                    {
                        mOwnerSim.OverlayComponent.PlayReaction(ReactionTypes.FacialAutoSelect, null);
                    }
                }

                if (mOwnerSim.IsHorse || mOwnerSim.IsDeer)
                {
                    r.RegisterCallback(HorseDeerRoutingEffectsCallback, RouteCallbackType.TriggerWhileTrue, new RouteCallbackCondition(RouteCallbackConditions.AnimationTriggeredEvent));
                }
                else if ((mOwnerSim.IsPuppy || mOwnerSim.IsKitten) && SeasonsManager.Enabled)
                {
                    r.RegisterCallback(PuppyKittenSnowLevelCallback, RouteCallbackType.TriggerOnTrue, new RouteCallbackCondition(RouteCallbackConditions.InDeepSnow));
                    r.RegisterCallback(PuppyKittenSnowLevelCallback, RouteCallbackType.TriggerOnTrue, new RouteCallbackCondition(RouteCallbackConditions.InShallowSnow));
                }

                bool flag = false;
                IHasScriptProxy destObj = r.DestObj;
                try
                {
                    flag = RoutingComponentEx.DoRoute(this, r);
                    float maxMinutesToWaitForRouteLeadIn = SimScriptAdaptor.MaxMinutesToWaitForRouteLeadIn;
                    DateAndTime previousDateAndTime = SimClock.CurrentTime();

                    while (mbRouteLeadInPlaying && (SimClock.ElapsedTime(TimeUnit.Minutes, previousDateAndTime) < maxMinutesToWaitForRouteLeadIn))
                    {
                        SpeedTrap.Sleep();
                    }

                    if (UsingStroller)
                    {
                        new GetOutOfStrollerRouteAction(mOwnerSim, r).PerformAction();
                    }
                }
                finally
                {
                    if (mbRouteLeadInPlaying)
                    {
                        mbRouteLeadInPlaying = false;
                        OverlayComponent component2 = mOwnerSim.OverlayComponent;
                        component2.OverlaysEnded -= OnOverlaysEnded;
                        mOwnerSim.OverlayComponent.StopAllOverlays();
                    }

                    try
                    {
                        mOwnerSim.IdleManager.StopFacialIdle(true);
                    }
                    catch (Exception e)
                    {
                        Common.Exception(mOwnerSim, e);
                    }

                    if (UsingStroller)
                    {
                        new GetOutOfStrollerRouteAction(mOwnerSim, r).PerformAction();
                    }
                }

                if (!flag || !mOwnerSim.HasExitReason(ExitReason.ObjectStateChanged))
                {
                    return flag;
                }

                if (r.DoRouteFail)
                {
                    InteractionInstance currentInteraction = mOwnerSim.CurrentInteraction;
                    if ((currentInteraction != null) && (currentInteraction.Target != null))
                    {
                        mOwnerSim.PlayRouteFailure(currentInteraction.Target.GetThoughtBalloonThumbnailKey());
                    }
                    else
                    {
                        mOwnerSim.PlayRouteFailure();
                    }
                }
            }
            catch (ResetException)
//.........这里部分代码省略.........
开发者ID:GnatGoSplat,项目名称:NRaas,代码行数:101,代码来源:SimRoutingComponentEx.cs

示例3: DebugMsg


//.........这里部分代码省略.........
                            if ((!(mOwnerSim.Posture is SittingInVehicle) && !(mOwnerSim.Posture is SittingInBoat)) && (mOwnerSim.RoutingComponent.RoutingParent == null))
                            {
                                try
                                {
                                    MidRouteBePushed(r.ExecutionFromNonSimTaskIsSafe);
                                }
                                catch (ResetException)
                                {
                                    throw;
                                }
                                catch (Exception e)
                                {
                                    Common.Exception(routeSim, e);
                                }

                                r.Replan();
                            }
                            else
                            {
                                mbPushRequested = false;
                            }

                            continue;
                        }

                        StartPushImmunity(OnRouteStartedImmuneToPushesDuration);
                        flag = DoSingleRouteEx(r, true);
                        flag &= r.PlanResult.Succeeded();
                        if (mbPushRequested)
                        {
                            continue;
                        }

                        if (r.GetOption(Route.RouteOption.CheckForFootprintsNearGoals))
                        {
                            ObjectGuid guid = r.IsPointObstructedBySim(mOwnerSim.PositionOnFloor);
                            if (guid != ObjectGuid.InvalidObjectGuid)
                            {
                                ObjectGuid runningTargetId = ObjectGuid.InvalidObjectGuid;
                                if (((mOwnerSim.InteractionQueue != null) && (mOwnerSim.InteractionQueue.RunningInteraction != null)) && (mOwnerSim.InteractionQueue.RunningInteraction.Target != null))
                                {
                                    runningTargetId = mOwnerSim.InteractionQueue.RunningInteraction.Target.ObjectId;
                                }

                                if ((guid != runningTargetId) && !PushSims(mOwnerSim.PositionOnFloor, 0.5f, false))
                                {
                                    bool option = r.GetOption(Route.RouteOption.BlockedByPeople);
                                    r.SetOption(Route.RouteOption.BlockedByPeople, true);
                                    r.Replan();
                                    r.SetOption(Route.RouteOption.BlockedByPeople, option);
                                    if (r.PlanResult.Succeeded() && (r.IsPointObstructedBySim(mOwnerSim.PositionOnFloor) == ObjectGuid.InvalidObjectGuid))
                                    {
                                        continue;
                                    }

                                    StartPushImmunity(OnEmergencyGetAwayRouteStartedImmuneToPushesDuration);
                                    Route route = PlanRouteForPush(mOwnerSim, null, PushSimsAwayDistanceMin, PushSimsAwayDistanceMax);
                                    DoSingleRouteEx(route, false);
                                    flag = false;
                                    if (r.DoRouteFail)
                                    {
                                        Sim sim = guid.ObjectFromId<Sim>();
                                        PlayRouteFailureIfAppropriate(sim);
                                    }

                                    RouteFailureTurnJigBlocker = ObjectGuid.InvalidObjectGuid;
开发者ID:GnatGoSplat,项目名称:NRaas,代码行数:67,代码来源:SimRoutingComponentEx.cs

示例4: Reroute

        private static void Reroute(Route r, IStation closest, IStation destination)
        {
            Sim target = r.Follower.Target as Sim;
            Vector3 currentStartPoint = r.GetCurrentStartPoint();
            float distanceRemaining = r.GetDistanceRemaining();

            Route route = target.CreateRoute();
            route.SetOption(Route.RouteOption.EnableSubwayPlanning, false);
            route.SetOption2(Route.RouteOption2.EnableHoverTrainPlanning, false);
            route.SetOption(Route.RouteOption.EnablePlanningAsCar, r.GetOption(Route.RouteOption.EnablePlanningAsCar));
            route.SetOption(Route.RouteOption.PlanUsingStroller, r.GetOption(Route.RouteOption.PlanUsingStroller));
            route.SetOption(Route.RouteOption.ReplanUsingStroller, r.GetOption(Route.RouteOption.ReplanUsingStroller));
            route.SetOption(Route.RouteOption.BeginAsStroller, r.GetOption(Route.RouteOption.BeginAsStroller));
            Slot routeEnterEndSlot = closest.RouteEnterEndSlot;
            if (routeEnterEndSlot != Slot.None)
            {
                GameObject routingSlotEnterFootprint = closest.RoutingSlotEnterFootprint;
                if (routingSlotEnterFootprint != null)
                {
                    route.AddObjectToIgnoreForRoute(routingSlotEnterFootprint.ObjectId);
                }
                if (route.PlanToSlot(closest, routeEnterEndSlot).Succeeded())
                {
                    Slot routeExitBeginSlot = destination.RouteExitBeginSlot;
                    Vector3 slotPosition = destination.GetSlotPosition(routeExitBeginSlot);
                    GameObject routingSlotExitFootprint = destination.RoutingSlotExitFootprint;
                    if (routingSlotExitFootprint != null)
                    {
                        r.AddObjectToIgnoreForRoute(routingSlotExitFootprint.ObjectId);
                    }
                    r.SetOption(Route.RouteOption.EnableSubwayPlanning, false);
                    r.SetOption2(Route.RouteOption2.EnableHoverTrainPlanning, false);
                    if (!r.ReplanFromPoint(slotPosition).Succeeded())
                    {
                        r.ReplanFromPoint(currentStartPoint);
                    }
                    else if ((route.GetDistanceRemaining() + r.GetDistanceRemaining()) < (distanceRemaining + SimRoutingComponent.kDistanceMustSaveInOrderToUseSubway))
                    {
                        if (closest is IHoverTrainStation)
                        {
                            r.ReplanAllowed = false;
                            Route route2 = target.CreateRoute();
                            PathType elevatedTrainPath = PathType.ElevatedTrainPath;
                            List<Vector3> list = new List<Vector3>();
                            list.Add(closest.GetSlotPosition(closest.RouteEnterEndSlot));
                            list.Add(destination.GetSlotPosition(destination.RouteExitBeginSlot));
                            if (list.Count > 0)
                            {
                                route2.InsertCustomPathAtIndex(0, list.ToArray(), false, true, elevatedTrainPath);
                                route2.ReplanAllowed = false;
                                RoutePlanResult planResult = route2.PlanResult;
                                planResult.mType = RoutePlanResultType.Succeeded;
                                route2.PlanResult = planResult;
                                PathData pathData = route2.GetPathData(0);
                                pathData.ObjectId = destination.ObjectId;
                                pathData.PathType = PathType.ElevatedTrainPath;
                                route2.SetPathData(ref pathData);
                                r.InsertRouteSubPathsAtIndex(0, route2);
                            }
                        }

                        r.InsertRouteSubPathsAtIndex(0x0, route);
                        r.SetOption(Route.RouteOption.EnableSubwayPlanning, true);
                        r.SetOption2(Route.RouteOption2.EnableHoverTrainPlanning, true);
                    }
                    else
                    {
                        r.ReplanFromPoint(currentStartPoint);
                    }
                }
            }
        }
开发者ID:Robobeurre,项目名称:NRaas,代码行数:72,代码来源:AncientPortalRoutingHelper.cs


注:本文中的Route.GetOption方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。