Esempio n. 1
0
        private void CollectNearbyBuildings()
        {
            var count = 0;

            foreach (var building in MemoryAccess.GetCBuildings(_camera.Position, UserConfig.BuildingSearchRadius)
                     .OrderBy(x => x.Position.DistanceTo(_camera.Position)))
            {
                if (count > Math.Min(49, UserConfig.MaxBuildingsOnScreen))
                {
                    break;
                }

                if (!UserConfig.ShowLODs && building.ModelName.Contains("_slod"))
                {
                    continue;
                }

                _visibleObjects[count++] = new BuildingObjectInfo(building);

                if (UserConfig.ShowNearbyList && count < FastUiArray.NumTextLines)
                {
                    _uiList.SetText(count, building.ModelName,
                                    $"{building.Position.DistanceTo(_camera.Position):0.###}");
                }
            }
        }