public static Map MergeMaps(Map baseMap, string assetName)
        {
            // If there's no maps to inject, we can just skip all this
            if (!RegisteredMaps.ContainsKey(assetName) || RegisteredMaps[assetName].Count == 0)
            {
                return(baseMap);
            }

            // If we've already merged this map, just return that
            if (MergedMaps.ContainsKey(assetName))
            {
                return(MergedMaps[assetName]);
            }

            // An array of the maps that need to be injected into the base map
            MapInformation[] injectedMaps = RegisteredMaps[assetName].ToArray();

            // Merge the maps
            Map mergedMap = MergeMaps(baseMap, injectedMaps);

            // Store the merged map
            if (!MergedMaps.ContainsKey(assetName))
            {
                MergedMaps.Add(assetName, mergedMap);
            }
            else
            {
                MergedMaps[assetName] = mergedMap;
            }

            return(mergedMap);
        }
        public static void RegisterMap(Mod owner, string assetName, MapInformation mapInformation)
        {
            if (!RegisteredMaps.ContainsKey(assetName))
            {
                RegisteredMaps[assetName] = new List <MapInformation>();
            }

            RegisteredMaps[assetName].Add(mapInformation);
        }