/// <summary>
        /// Get PluginData for a HEditData for the specified extended save data ID
        /// </summary>
        /// <param name="data">HEditData for which to get extended data</param>
        /// <param name="id">ID of the data saved to the card</param>
        /// <returns>PluginData</returns>
        public static PluginData GetExtendedDataById(HEdit.HEditData data, string id)
        {
            if (data == null || id == null)
            {
                return(null);
            }

            var dict = _internalHEditDataDictionary.Get(data);

            return(dict != null && dict.TryGetValue(id, out var extendedSection) ? extendedSection : null);
        }
        /// <summary>
        /// Set PluginData for a HEditData for the specified extended save data ID
        /// </summary>
        /// <param name="data">HEditData for which to set extended data</param>
        /// <param name="id">ID of the data to be saved to the card</param>
        /// <param name="extendedFormatData">PluginData to save to the card</param>
        public static void SetExtendedDataById(HEdit.HEditData data, string id, PluginData extendedFormatData)
        {
            var dict = _internalHEditDataDictionary.Get(data);

            if (dict == null)
            {
                dict = new Dictionary <string, PluginData>();
                _internalHEditDataDictionary.Set(data, dict);
            }

            dict[id] = extendedFormatData;
        }
Esempio n. 3
0
        internal static void HEditDataReadEvent(HEdit.HEditData data)
        {
            if (!LoadEventsEnabled || HEditDataBeingLoaded == null)
            {
                return;
            }

            foreach (var entry in HEditDataBeingLoaded.GetInvocationList())
            {
                var handler = (MapInfoEventHandler)entry;
                try
                {
                    handler.Invoke(data);
                }
                catch (Exception ex)
                {
                    Logger.Log(LogLevel.Error, $"Subscriber crash in {nameof(ExtendedSave)}.{nameof(HEditDataBeingLoaded)} - {ex}");
                }
            }
        }
 /// <summary>
 /// Get a dictionary of ID, PluginData containing all extended data for a HEditData
 /// </summary>
 /// <param name="data">HEditData for which to get extended data</param>
 /// <returns>Dictionary of ID, PluginData</returns>
 public static Dictionary <string, PluginData> GetAllExtendedData(HEdit.HEditData data) => _internalHEditDataDictionary.Get(data);