void tryChangeStaticRecources() { GlobalRecources.RecourcesChanged -= tryChangeStaticRecources; if (PBParams.recourcesRequired) { if (GlobalRecources.CanChangeAmount(PBParams.StaticRecourcesRequired, true)) { GlobalRecources.SubstractRecources(PBParams.StaticRecourcesRequired); GlobalRecources.AddRecources(PBParams.StaticRecourcesProvided); if (UtilityDebug.PassivebuildingLog) { Debug.Log($"[PB_ProductionCycle] {Building.BuildingName} вычел input, дал output [{Time.deltaTime}]", Building.gameObject); } StaticRecourcesChanged.Invoke(); } else { GlobalRecources.RecourcesChanged += tryChangeStaticRecources; } } else { GlobalRecources.AddRecources(PBParams.StaticRecourcesProvided); if (UtilityDebug.PassivebuildingLog) { Debug.Log($"[PB_ProductionCycle] {Building.BuildingName} input не нужен, отдаю output. [{Time.deltaTime}]", Building.gameObject); } StaticRecourcesChanged.Invoke(); } }
void updateInfo() { KeyValuePair <GlobalRecourceType, int>[] inputKVPS; KeyValuePair <GlobalRecourceType, int>[] outputKVPS = currentState.PBParams.StaticRecourcesProvided.ToArray();; int i = 0; if (currentState.PBParams.recourcesRequired) { inputKVPS = currentState.PBParams.StaticRecourcesRequired.ToArray(); for (i = 0; i < inputKVPS.Length; i++) { inputImages[i].SetActive(true); inputImages[i].GetComponent <Image>().sprite = staticRecourceIcons.Sprites[(int)inputKVPS[i].Key]; inputImages[i].GetComponentInChildren <Text>().text = $"{GlobalRecources.GetAmount(inputKVPS[i].Key)} / " + $"{inputKVPS[i].Value}"; } } for (; i < 4; i++) { inputImages[i].SetActive(false); } for (i = 0; i < outputKVPS.Length; i++) { outputImages[i].SetActive(true); outputImages[i].GetComponent <Image>().sprite = staticRecourceIcons.Sprites[(int)outputKVPS[i].Key]; outputImages[i].GetComponentInChildren <Text>().text = $"{outputKVPS[i].Value}"; } for (; i < 4; i++) { outputImages[i].SetActive(false); } }
private void Start() { utilityDebug.Initialization(settings); Tile[,] tileMap = mapGen.GenerateMap(settings); Map.Initialize(settings, tileMap); GlobalRecources.Initializtion(settings.StaringStaticRes); constructOnGameStart(); CameraMovement.Initialize(); if (Map.StorageBuildings.Count != 0) { foreach (var res in settings.Startingrecource) { Map.StorageBuildings[0].Storage.AddMaximumAmount(res.Type, res.Amount, out int c); } } UIManager.Initialize(); }
private void Awake() { foreach (var item in Enum.GetValues(typeof(GlobalRecourceType))) { GlobalRecourceType type = (GlobalRecourceType)item; GameObject image = Instantiate(StaticRecourceImagePrefab, Layout.transform); Text text = image.GetComponentInChildren <Text>(); image.GetComponent <Image>().sprite = recourceSprites.Sprites[(int)type]; texts.Add(type, text); } foreach (var kvp in texts) { kvp.Value.text = GlobalRecources.GetAmount(kvp.Key).ToString(); } GlobalRecources.RecourceChanged += changeAmount; }
void checkStaticRecources() { GlobalRecources.RecourcesChanged -= checkStaticRecources; if (GlobalRecources.CanChangeAmount(abParams.StaticRecourceCost, true)) { GlobalRecources.SubstractRecources(abParams.StaticRecourceCost); if (UtilityDebug.ActivebuildingLog) { Debug.Log($"[AB_State_productionCycle] {Building.BuildingName} проверка статичных ресурсов пройдена" + $" [{Time.deltaTime}]", Building.gameObject); } staticRecourceProvided(); } else { GlobalRecources.RecourcesChanged += checkStaticRecources; } }
void changeAmount(GlobalRecourceType type) { // Debug.Log(StaticRecources.GetAmount(type).ToString()); texts[type].text = GlobalRecources.GetAmount(type).ToString(); }