internal static void RegisterHandlerCreator(TechType techType, CreateIconOverlay createEvent, string assemblyName) { if (OverlayCreators.ContainsKey(techType)) { QuickLogger.Warning($"PdaOverlayManager blocked duplicate IconOverlayCreator from {assemblyName}"); return; } QuickLogger.Info($"PdaOverlayManager received IconOverlayCreator from {assemblyName}"); OverlayCreators.Add(techType, createEvent); }
/// <summary> /// Registers a <see cref="CreateIconOverlay" /> method that creates a new <see cref="IconOverlay" /> on demand.<para /> /// This method will be invoked every time the PDA screen opens up on a Cyclops Upgrade Console that contains a module of the specified <see cref="TechType" />. /// </summary> /// <param name="techType">The upgrade module's techtype.</param> /// <param name="createEvent">A method that takes in a <see cref="uGUI_ItemIcon" /> and <see cref="InventoryItem" /> and returns a new <see cref="IconOverlay" />.</param> public void PdaIconOverlay(TechType techType, CreateIconOverlay createEvent) { PdaOverlayManager.RegisterHandlerCreator(techType, createEvent, Assembly.GetCallingAssembly().GetName().Name); }