Exemplo n.º 1
0
 public override void Dispose(ClientMain game)
 {
     base.Dispose(game);
     foreach (var val in WaypointElements)
     {
         val.TryClose();
         val.Dispose();
     }
     WaypointElements.Clear();
 }
Exemplo n.º 2
0
        public void Repopulate()
        {
            if (WaypointUtils.doingConfigAction || (WaypointElements.Count > 0 && WaypointElements.Count == utils.WaypointsRel.Length))
            {
                repop = false;
                return;
            }

            Stack <HudElementWaypoint> stack = new Stack <HudElementWaypoint>();

            //move waypoints to temp stack within range of updated waypoint count
            for (int i = 0; i < utils.WaypointsRel.Length; i++)
            {
                HudElementWaypoint elem;

                while (!WaypointElements.TryPop(out elem) && WaypointElements.Count > 0)
                {
                    ;
                }
                stack.Push(elem);
            }

            //dispose any extras
            int c = WaypointElements.Count;

            for (int i = 0; i < c; i++)
            {
                HudElementWaypoint elem;

                while (!WaypointElements.TryPop(out elem) && WaypointElements.Count > 0)
                {
                    ;
                }
                CloseOnMainThread(elem);
                DisposeOnMainThread(elem);
            }

            //create or update hud elements from temp stack then push back onto main stack
            var arr = stack.ToArray();

            for (int i = 0; i < arr.Length; i++)
            {
                CreateOrUpdateHudElemOnMainThread(i, arr);
            }

            if (arr.Length > 0)
            {
                WaypointElements.PushRange(arr);
            }

            repop = false;
        }
Exemplo n.º 3
0
 public override void Dispose(ClientMain game)
 {
     if (game != null)
     {
         base.Dispose(game);
     }
     foreach (var val in WaypointElements)
     {
         val?.TryClose();
         val?.Dispose();
     }
     WaypointElements?.Clear();
 }