Beispiel #1
0
        /// <summary>
        ///     Create a new MapDrawing with a custom overlay name
        /// </summary>
        /// <param name="name">Custom name for the MapDrawing</param>
        /// <returns>Reference to MapDrawing for modder to edit</returns>
        public MapDrawing GetMapDrawing(string name)
        {
            if (Drawings.ContainsKey(name))
            {
                Logger.LogDebug($"Returning existing overlay with name {name}");
                return(Drawings[name]);
            }

            // if this is the first MapDrawing we are adding, then we initialize all variables.
            if (Drawings.Count == 0)
            {
                SetupDrawings();
            }

            MapDrawing ret = new MapDrawing
            {
                Name        = name,
                Enabled     = true,
                TextureSize = TextureSize
            };

            Drawings.Add(name, ret);
            AddDrawingToGUI(ret);
            return(ret);
        }
Beispiel #2
0
        private void AddDrawingToGUI(MapDrawing ovl)
        {
            var toggle = OverlayPanel?.AddOverlayToggle(ovl.SourceMod.Name, ovl.Name);

            toggle?.SetIsOnWithoutNotify(ovl.Enabled);
            toggle?.onValueChanged.AddListener(active =>
            {
                ovl.Enabled = active;
            });
            ovl.Toggle = toggle;
            OverlayPanel?.gameObject.SetActive(true);
        }