override public void StatusUpdate() { if (!isObserving) { return; } if (observingSurface == null || observingSurface.destroyed) { SelfShutOff(); return; } switch (mode) { case SurfacePanelMode.SelectAction: { hq = colony.hq; CheckGatherButton(); if (observingSurface.host.IsStructure()) { digButton.transform.GetChild(0).GetComponent <Text>().text = Localization.GetWord(LocalizedWord.Delete); } else { if (observingSurface.haveWorksite) { var w = colony.GetWorksite(observingSurface); if (w != null) { var cs = w as CleanSite; status_digOrdered = (cs != null && cs.diggingMission); } } digButton.transform.GetChild(0).GetComponent <Text>().text = status_digOrdered ? Localization.GetPhrase(LocalizedPhrase.StopDig) : Localization.GetWord(LocalizedWord.Dig); } if (savedHqLevel != hq.level) { savedHqLevel = hq.level; blockCreateButton.gameObject.SetActive(IsBlockCreatingAvailable()); columnCreateButton.gameObject.SetActive(IsColumnAvailable()); } changeMaterialButton.gameObject.SetActive(IsChangeSurfaceMaterialAvalable()); break; } case SurfacePanelMode.Build: { if (selectedStructureID != Structure.EMPTY_ID) { switch (buildingCreateMode) { case BuildingCreateInfoMode.Acceptable: Storage storage = colony.storage; if (lastStorageStatus != storage.operationsDone) { float[] onStorage = storage.standartResources; for (int i = 0; i < resourcesCostImage.Length; i++) { int rid = (int)showingResourcesCount[i].x; resourcesCostImage[i].transform.GetChild(0).GetComponent <Text>().color = (onStorage[rid] < showingResourcesCount[i].y) ? Color.red : Color.white; } lastStorageStatus = storage.operationsDone; } break; case BuildingCreateInfoMode.Unacceptable_Material: break; } //rotating window } } break; } }