Universe.Physics.BulletSPlugin.BSCharacter.PositionSanityCheck C# (CSharp) Method

PositionSanityCheck() private method

private PositionSanityCheck ( ) : bool
return bool
        bool PositionSanityCheck()
        {
            bool ret = false;

            // TODO: check for out of bounds
            if (!PhysicsScene.TerrainManager.IsWithinKnownTerrain(RawPosition))
            {
                // The character is out of the known/simulated area.
                // Force the avatar position to be within known. ScenePresence will use the position
                //    plus the velocity to decide if the avatar is moving out of the region.
                RawPosition = PhysicsScene.TerrainManager.ClampPositionIntoKnownTerrain(RawPosition);
                DetailLog("{0},BSCharacter.PositionSanityCheck,notWithinKnownTerrain,clampedPos={1}", LocalID,
                    RawPosition);
                return true;
            }

            // If below the ground, move the avatar up
            float terrainHeight = PhysicsScene.TerrainManager.GetTerrainHeightAtXYZ(RawPosition);
            if (Position.Z < terrainHeight)
            {
                DetailLog("{0},BSCharacter.PositionSanityCheck,adjustForUnderGround,pos={1},terrain={2}", LocalID,
                    _position, terrainHeight);
                _position.Z = terrainHeight + BSParam.AvatarBelowGroundUpCorrectionMeters;
                ret = true;
            }
            if ((CurrentCollisionFlags & CollisionFlags.BS_FLOATS_ON_WATER) != 0)
            {
                float waterHeight = PhysicsScene.TerrainManager.GetWaterLevelAtXYZ(_position);
                if (Position.Z < waterHeight)
                {
                    _position.Z = waterHeight;
                    ret = true;
                }
            }

            return ret;
        }

Same methods

BSCharacter::PositionSanityCheck ( bool inTaintTime ) : bool