using UnityEngine; using UnityEngine.UI; using TMPro; // Полоска над зданием (этап 3): рабочие этой профессии / места в городе. // Раньше показывала накопленный запас кликера -- кликер убран, добычу дают рабочие. // У Дома и Кристалла рабочих нет -- там подпись уровня, полоска скрыта. public class BuildingUI : MonoBehaviour { [Header("Настройки")] public ResourceCollector building; public TMP_Text stokText; public Slider progressBar; float next; void Start() { if (building == null) { Debug.LogError("Ошибка BuildingUI: не назначено здание (Building)!"); enabled = false; return; } UpdateUI(); } void Update() { if (Time.unscaledTime < next) return; next = Time.unscaledTime + 0.5f; UpdateUI(); } void UpdateUI() { bool workplace = building.IsWorkplace; if (progressBar != null && progressBar.gameObject.activeSelf != workplace) progressBar.gameObject.SetActive(workplace); if (!workplace) { if (stokText != null) stokText.text = building.IsHouse ? $"Дом {building.level} ур." : $"{building.level} ур."; return; } float workers = building.GetCurrentStock(); float slots = building.GetMaxCapacity(); if (stokText != null) stokText.text = $"Рабочие {workers:0} / {slots:0}"; if (progressBar != null) progressBar.value = slots > 0 ? Mathf.Clamp01(workers / slots) : 0f; } }