本文整理汇总了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);
}
}
示例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)
//.........这里部分代码省略.........
示例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;
示例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);
}
}
}
}