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


C# Route.GetNumPaths方法代码示例

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


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

示例1: Contains

        public static bool Contains(Route route, PathType type)
        {
            for (uint i = 0x0; i < route.GetNumPaths(); i++)
            {
                PathData pathData = route.GetPathData(i);
                if (pathData.PathType == type) return true;
            }

            return false;
        }
开发者ID:Robobeurre,项目名称:NRaas,代码行数:10,代码来源:Routes.cs

示例2: RouteToString

        public static string RouteToString(Route route)
        {
            string result = "NumPaths: " + route.GetNumPaths();

            for (uint i = 0x0; i < route.GetNumPaths(); i++)
            {
                PathData pathData = route.GetPathData(i);

                result += Common.NewLine + "PathType: " + pathData.PathType;
                result += Common.NewLine + "PortalStartPos: " + pathData.PortalStartPos;
                result += Common.NewLine + "ObjectId: " + pathData.ObjectId;

                GameObject obj = GameObject.GetObject<GameObject>(pathData.ObjectId);
                if (obj != null)
                {
                    result += Common.NewLine + "Object Type: " + obj.GetType();
                }
            }

            return result;
        }
开发者ID:Robobeurre,项目名称:NRaas,代码行数:21,代码来源:Routes.cs

示例3: CheckAndUpdateRouteForPortals

        private static void CheckAndUpdateRouteForPortals(Route r)
        {
            if (r.PlanResult.Succeeded())
            {
                Sim target = r.Follower.Target as Sim;
                if (target != null)
                {
                    // Subways and Ancient portals do not work for ghosts
                    if (target.SimDescription.DeathStyle != SimDescription.DeathType.None) return;

                    bool usingHoverTrain = target.CurrentInteraction is IHoverTrainStationInteraction;
                    if (!usingHoverTrain)
                    {
                        if (Routes.Contains(r, PathType.VehiclePath))
                        {
                            Vehicle ownedAndUsableVehicle = SimEx.GetOwnedAndUsableVehicle(target, target.LotCurrent);
                            if (ownedAndUsableVehicle != null)
                            {
                                if (ownedAndUsableVehicle.DestroyOnRelease)
                                {
                                    ownedAndUsableVehicle.Destroy();
                                    ownedAndUsableVehicle = null;
                                }

                                return;
                            }
                        }
                    }

                    if (target.IsSelectable || RandomUtil.RandomChance01(SimRoutingComponent.kNPCSubwayUseChance) || usingHoverTrain)
                    {
                        bool found = false;

                        for (uint i = 0; i < r.GetNumPaths(); i++)
                        {
                            PathData data = r.GetPathData(i);
                            if (data.PathType != PathType.PortalPath) continue;

                            AncientPortal portal = GameObject.GetObject<AncientPortal>(data.ObjectId);
                            if (portal != null)
                            {
                                found = true;
                                break;
                            }
                            else
                            {
                                IStation station = GameObject.GetObject<IStation>(data.ObjectId);
                                if (station != null)
                                {
                                    found = true;
                                    break;
                                }
                            }
                        }

                        if (found) return;

                        LotLocation startLotLocation = LotLocation.Invalid;
                        LotLocation endLotLocation = LotLocation.Invalid;
                        Vector3 currentStartPoint = r.GetCurrentStartPoint();
                        Vector3 destPoint = r.GetDestPoint();
                        ulong startLot = World.GetLotLocation(currentStartPoint, ref startLotLocation);
                        ulong endLot = World.GetLotLocation(destPoint, ref endLotLocation);
                        if (((startLot != ulong.MaxValue) && (endLot != ulong.MaxValue)) && ((startLot != endLot) || (startLot == 0x0L)))
                        {
                            AncientPortal closestAP = null;
                            float closestDistAP = float.MaxValue;
                            AncientPortal destinationAP = null;
                            float destDistanceAP = float.MaxValue;
                            if (target.IsHuman)
                            {
                                foreach (AncientPortal choice in Sims3.Gameplay.Queries.GetObjects<AncientPortal>())
                                {
                                    Vector3 vector3 = choice.Position - currentStartPoint;
                                    if (vector3.Length() < closestDistAP)
                                    {
                                        closestDistAP = vector3.Length();
                                        closestAP = choice;
                                    }

                                    Vector3 vector4 = choice.Position - destPoint;
                                    if (vector4.Length() < destDistanceAP)
                                    {
                                        destDistanceAP = vector4.Length();
                                        destinationAP = choice;
                                    }
                                }
                            }

                            IStation closestSW = null;
                            float closestDistSW = float.MaxValue;
                            IStation destinationSW = null;
                            float destDistanceSW = float.MaxValue;
                            foreach (IStation subway3 in Sims3.Gameplay.Queries.GetObjects<IStation>())
                            {
                                Vector3 vector3 = subway3.Position - currentStartPoint;
                                if (vector3.Length() < closestDistSW)
                                {
                                    closestDistSW = vector3.Length();
                                    closestSW = subway3;
//.........这里部分代码省略.........
开发者ID:Robobeurre,项目名称:NRaas,代码行数:101,代码来源:AncientPortalRoutingHelper.cs

示例4: DoRoute


//.........这里部分代码省略.........
                        actionResult = RouteAction.ActionResult.ContinueAndFollowPath;
                    }

                    msg.Append(Common.NewLine + actionResult + Common.NewLine);

                    if (GoHere.Settings.mDetailedRouting)
                    {
                        if (Sim.ActiveActor == owner)
                        {
                            Common.DebugNotify(msg);
                        }
                    }

                    if (ths.mRouteActions.Count == 0x0)
                    {
                        explanation |= RouteAction.FailureExplanation.InternalPlanFailure;
                        success = false;
                        break;
                    }

                    msg.Append("D");

                    ths.mPreviousRouteAction = ths.mRouteActions[0x0];
                    switch(actionResult)
                    {
                        case RouteAction.ActionResult.Continue:
                        case RouteAction.ActionResult.ContinueAndPopPath:
                        case RouteAction.ActionResult.ContinueAndPopPathAndReplan:
                        case RouteAction.ActionResult.ContinueAndPopPathAndRestart:
                        case RouteAction.ActionResult.ContinueAndFollowPath:
                            msg.Append("E");

                            ths.mRouteActions.RemoveAt(0x0);
                            bool flag3 = (processedPath.GetNumPaths() > 0x1) || (processedPath.IsLoop());
                            if (((actionResult == RouteAction.ActionResult.ContinueAndPopPath) && flag3) || ((actionResult == RouteAction.ActionResult.ContinueAndPopPathAndRestart) || (actionResult == RouteAction.ActionResult.ContinueAndPopPathAndReplan)))
                            {
                                if (flag3)
                                {
                                    processedPath.PopPath();
                                }

                                msg.Append("F");

                                if (actionResult == RouteAction.ActionResult.ContinueAndPopPathAndReplan)
                                {
                                    Vector3 outPosition = new Vector3();
                                    if ((ths.RoutingParent != null) && (ths.RoutingParent is IBoat))
                                    {
                                        outPosition = ths.RoutingParent.PositionOnFloor;
                                    }
                                    else if (ths.Owner != null)
                                    {
                                        if ((owner != null) && (owner.Posture is SwimmingInPool))
                                        {
                                            outPosition = ths.Owner.Position;
                                        }
                                        else
                                        {
                                            outPosition = ths.Owner.PositionOnFloor;
                                        }
                                    }
                                    else
                                    {
                                        processedPath.GetPathStartPoint(0x0, ref outPosition);
                                    }
                                    processedPath.ReplanFromPoint(outPosition);
开发者ID:Robobeurre,项目名称:NRaas,代码行数:67,代码来源:RoutingComponentEx.cs


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