/// <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); }
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); }