public static void AddToFavorites(InstanceID MyInstanceID) //Toggler for family panel { if (MyInstanceID.IsEmpty) { return; } object L = GetPrivateVariable <object>(InstanceManager.instance, "m_lock"); do { }while (!Monitor.TryEnter(L, SimulationManager.SYNCHRONIZE_TIMEOUT)); try { InstanceManager MyInstance = Singleton <InstanceManager> .instance; CitizenManager MyCitizen = Singleton <CitizenManager> .instance; uint citizen = MyInstanceID.Citizen; string Name = MyCitizen.GetCitizenName(citizen); int citizenID = (int)((UIntPtr)citizen); if (Name != null && Name.Length > 0) { if (!FavCimsCore.RowID.ContainsKey(citizenID)) { if (!FavoriteCimsMainPanel.RowsAlreadyExist(MyInstanceID)) { try { MyInstance.SetName(MyInstanceID, Name); CitizenRow FavCimsCitizenSingleRowPanel = FavoriteCimsMainPanel.FavCimsCitizenRowsPanel.AddUIComponent(typeof(CitizenRow)) as CitizenRow; if (FavCimsCitizenSingleRowPanel != null) { FavCimsCitizenSingleRowPanel.MyInstanceID = MyInstanceID; FavCimsCitizenSingleRowPanel.MyInstancedName = Name; } }catch (Exception e) { Debug.Error("Add To Favorites Fail : " + e.ToString()); } } else { return; } } else { RemoveRowAndRemoveFav(MyInstanceID, citizenID); } } } finally { Monitor.Exit(L); } return; }
public override void Update() { if (FavCimsMainClass.UnLoading) { return; } if (this.isVisible) { if (!HumanWorldInfoPanel.GetCurrentInstanceID().IsEmpty) { ThisHuman = HumanWorldInfoPanel.GetCurrentInstanceID(); int citizenID = (int)((UIntPtr)ThisHuman.Citizen); string CitizenName = MyInstance.GetName(ThisHuman); if (CitizenName != null && CitizenName.Length > 0) { this.tooltip = FavCimsLang.text("FavStarButton_disable_tooltip"); this.normalBgSprite = "icon_fav_subscribed"; if (!FavCimsCore.RowID.ContainsKey(citizenID) && !FavoriteCimsMainPanel.RowsAlreadyExist(ThisHuman)) { object L = FavCimsCore.GetPrivateVariable <object>(InstanceManager.instance, "m_lock"); do { }while (!Monitor.TryEnter(L, SimulationManager.SYNCHRONIZE_TIMEOUT)); try { CitizenRow FavCimsCitizenSingleRowPanel = FavoriteCimsMainPanel.FavCimsCitizenRowsPanel.AddUIComponent(typeof(CitizenRow)) as CitizenRow; if (FavCimsCitizenSingleRowPanel != null) { FavCimsCitizenSingleRowPanel.MyInstanceID = ThisHuman; FavCimsCitizenSingleRowPanel.MyInstancedName = CitizenName; } } finally { Monitor.Exit(L); } } return; } else { if (citizenID != 0 && FavCimsCore.RowID.ContainsKey(citizenID)) { MyInstance.SetName(ThisHuman, MyCitizen.GetCitizenName(ThisHuman.Citizen)); this.tooltip = FavCimsLang.text("FavStarButton_disable_tooltip"); this.normalBgSprite = "icon_fav_subscribed"; } else { this.tooltip = FavCimsLang.text("FavStarButton_enable_tooltip"); this.normalBgSprite = "icon_fav_unsubscribed"; } } } } }