Pathfinding.GraphUpdateObject.RevertFromBackup C# (CSharp) Method

RevertFromBackup() public method

public RevertFromBackup ( ) : void
return void
        public virtual void RevertFromBackup()
        {
            if (trackChangedNodes) {
                if (changedNodes == null) return;
                for (int i=0;i<changedNodes.Count;i++) {
                    changedNodes[i].penalty = (uint)(backupData[i]>>32);
                    changedNodes[i].flags = (int)(backupData[i] & 0xFFFFFFFF);
                    changedNodes[i].position = backupPositionData[i];
                }
            } else {
                throw new System.InvalidOperationException ("Changed nodes have not been tracked, cannot revert from backup");
            }
        }

Usage Example

Exemplo n.º 1
0
        // Token: 0x06002745 RID: 10053 RVA: 0x001AD344 File Offset: 0x001AB544
        public static bool UpdateGraphsNoBlock(GraphUpdateObject guo, List <GraphNode> nodes, bool alwaysRevert = false)
        {
            for (int i = 0; i < nodes.Count; i++)
            {
                if (!nodes[i].Walkable)
                {
                    return(false);
                }
            }
            guo.trackChangedNodes = true;
            PathProcessor.GraphUpdateLock graphUpdateLock = AstarPath.active.PausePathfinding();
            bool flag;

            try
            {
                AstarPath.active.UpdateGraphs(guo);
                AstarPath.active.FlushGraphUpdates();
                flag = PathUtilities.IsPathPossible(nodes);
                if (!flag || alwaysRevert)
                {
                    guo.RevertFromBackup();
                    AstarPath.active.FloodFill();
                }
            }
            finally
            {
                graphUpdateLock.Release();
            }
            guo.trackChangedNodes = false;
            return(flag);
        }
All Usage Examples Of Pathfinding.GraphUpdateObject::RevertFromBackup