예제 #1
0
        public void DrawBlip(CollectibleBlip blip)
        {
            int    size      = 5;
            double thickness = 2;
            string toolTip   =
                (blip.Type == BlipType.Package) ? $"Hidden Package #{blip.Index + 1}" :
                (blip.Type == BlipType.Rampage) ? $"Rampage #{blip.Index + 1}" :
                (blip.Type == BlipType.StuntJump) ? $"Unique Stunt Jump #{blip.Index + 1}" : "";

            if (blip.IsCollected)
            {
                size      = 3;
                thickness = 1.5;
                toolTip  += " (collected)";
            }

            blip.Sprite = MakeSprite(blip.Coords,
                                     scale: size,
                                     thickness: thickness,
                                     color: (int)blip.Type,
                                     isBright: blip.IsCollected,
                                     toolTip: toolTip

                                     );
            MapOverlays.Add(blip.Sprite);
        }
예제 #2
0
        Widget CreateOverlaysPanel(World world)
        {
            var categoriesPanel  = Ui.LoadWidget("OVERLAY_PANEL", null, new WidgetArgs());
            var categoryTemplate = categoriesPanel.Get <CheckboxWidget>("CATEGORY_TEMPLATE");

            MapOverlays[] allCategories = { MapOverlays.Grid, MapOverlays.Buildable };
            foreach (var cat in allCategories)
            {
                var category = (CheckboxWidget)categoryTemplate.Clone();
                category.GetText   = () => cat.ToString();
                category.IsChecked = () => overlays.HasFlag(cat);
                category.IsVisible = () => true;
                category.OnClick   = () => overlays ^= cat;

                if (cat.HasFlag(MapOverlays.Grid))
                {
                    var terrainGeometryTrait = world.WorldActor.Trait <TerrainGeometryOverlay>();
                    category.OnClick = () =>
                    {
                        overlays ^= cat;
                        terrainGeometryTrait.Enabled = overlays.HasFlag(MapOverlays.Grid);
                    };
                }

                if (cat.HasFlag(MapOverlays.Buildable))
                {
                    var buildableTerrainTrait = world.WorldActor.Trait <BuildableTerrainOverlay>();
                    category.OnClick = () =>
                    {
                        overlays ^= cat;
                        buildableTerrainTrait.Enabled = overlays.HasFlag(MapOverlays.Buildable);
                    };
                }

                categoriesPanel.AddChild(category);
            }

            return(categoriesPanel);
        }
 public void UpdateSpawnPointMarker()
 {
     MapOverlays.Clear();
     MapOverlays.Add(MakeTargetSprite(SpawnPoint.Get2DComponent(), scale: 32));
 }
예제 #4
0
 public void ClearBlip(CollectibleBlip blip)
 {
     MapOverlays.Remove(blip.Sprite);
 }