void OnSelectedDistricts() { //get selected building ID (after waiting it has been actualized) FieldInfo baseSub = m_districtInfoPanel.GetType().GetField("m_InstanceID", BindingFlags.NonPublic | BindingFlags.Instance); InstanceID instanceId = (InstanceID)baseSub.GetValue(m_districtInfoPanel); if (instanceId.Type == InstanceType.District && instanceId.District != 0) { if (m_currentSelectedDistrictID == instanceId.District) //no update needed { return; } m_currentSelectedDistrictID = instanceId.District; } else { m_currentSelectedDistrictID = 0; } int districtIndex = m_info.GetResilientDistrictIndex(m_currentSelectedDistrictID); m_allowEvents = false; if (districtIndex != -1) { if (m_info.m_districts[districtIndex].unsuscribed) { m_resilientStateButton2.SetState(0); } else if (m_info.m_districts[districtIndex].resiliencyActivated) { m_resilientStateButton2.SetState(1); } else { m_resilientStateButton2.SetState(0); } } else { m_resilientStateButton2.SetState(0); } m_allowEvents = true; }
/********** UI update methods ***************/ void OnSelected() { //get selected building ID (after waiting it has been actualized) FieldInfo baseSub = m_zonedBuildingInfoPanel.GetType().GetField("m_InstanceID", BindingFlags.NonPublic | BindingFlags.Instance); InstanceID instanceId = (InstanceID)baseSub.GetValue(m_zonedBuildingInfoPanel); if (instanceId.Type == InstanceType.Building && instanceId.Building != 0) { if (m_currentSelectedBuildingID == instanceId.Building) //no update needed { return; } m_currentSelectedBuildingID = instanceId.Building; } else { m_currentSelectedBuildingID = 0; } int buildIndex = m_info.GetResilientBuildingIndex(m_currentSelectedBuildingID); m_allowEvents = false; if (buildIndex != -1 && !m_info.m_resilients[buildIndex].unsuscribed) { if (m_info.m_resilients[buildIndex].resiliencyActivated) { m_resilientStateButton.SetState(2); } else { m_resilientStateButton.SetState(1); } ShowHistory(); CheckUpdateUI(m_currentSelectedBuildingID); } else { m_resilientStateButton.SetState(0); HideHistory(); } m_allowEvents = true; }