/// <summary> /// Feltolti a raktár Búza részét /// </summary> private void RaktarBuzaFeltoltes() { foreach (NyersanyagMezo nyersanyag_mezo in this.nyersanyagMezok) { if (nyersanyag_mezo.Kapacitas.ContainsKey(Tipusok.Tarolhatok.Buza)) { Tipusok.Tarolhatok buzatarolhato = Tipusok.Tarolhatok.Buza; int mennyit; int tarolo_maradekhely = this.tarolo.Kapacitas[buzatarolhato][1] - this.tarolo.Kapacitas[buzatarolhato][0]; // ha a mezőben több a teremtl anyag, mint amekkkora a maradék hely, akkor csak maradekhelynyit kér le if (nyersanyag_mezo.Kapacitas[buzatarolhato][0] > tarolo_maradekhely) { mennyit = tarolo_maradekhely; } // ellenkező esetben az egészet, amit tárol else { mennyit = nyersanyag_mezo.Kapacitas[buzatarolhato][0]; } if (mennyit > 0) { /// nem csodrulhat túl, mert annyit teszünk bele amennyit még elbír nyersanyag_mezo.Kivesz(buzatarolhato, mennyit); this.tarolo.Betesz(buzatarolhato, mennyit); } } } }
/// <summary> /// Visszaadja, hogy egy tárolhatóból van-e a táróbólban mennyiseg /// </summary> /// <param name="tarolhato">A tárolható típusa</param> /// <param name="mennyiseg">A mennyiseg</param> /// <returns></returns> public bool VanEleg(Tipusok.Tarolhatok tarolhato, int mennyiseg) { if (tarolhato != Tipusok.Tarolhatok.Lakos) { return(this.tarolo.Kapacitas[tarolhato][0] > mennyiseg); } else { return(this.foEpulet.Lista.Count > mennyiseg); } }
/// <summary> /// A Kapacitás tároló részéhez [0] hozzáad mennyit-nyit /// Ha így nagyobb akkor teletölti, majd dob egy TaroloTulCsordultException-t /// </summary> /// <param name="tarolhato">A tárolható típusa, amelyik rekeszbe szeretnék tenni a mennyit</param> /// <param name="mennyit">A mennyiség, amennyit be szeretnénk tenni a rekeszbe</param> public void Betesz(Tipusok.Tarolhatok tarolhato, int mennyit) { if (!Kapacitas.ContainsKey(tarolhato)) { throw new NemTartalmazTarolhatotException(); } int tarolo_maradekhely = Kapacitas[tarolhato][1] - Kapacitas[tarolhato][0]; if (mennyit > tarolo_maradekhely) { Kapacitas[tarolhato][0] += tarolo_maradekhely; throw new TaroloTulCsordultException(); } Kapacitas[tarolhato][0] += mennyit; }
/// <summary> /// Visszaadja, hogy van-e búzamező, ahol a kapacitástárolt rekesze nulla /// </summary> /// <returns>Visszaadja, hogy van-e búzamező, ahol a kapacitástárolt rekesze nulla</returns> private bool VanBeNemTakaritottBuzaMezo() { foreach (NyersanyagMezo item in this.nyersanyagMezok) { if (item.Kapacitas.ContainsKey(Tipusok.Tarolhatok.Buza)) { Tipusok.Tarolhatok buzatarolhato = Tipusok.Tarolhatok.Buza; if (item.Kapacitas[buzatarolhato][0] > 0) { return(true); } } } return(false); }
/// <summary> /// Megtolti a kapacitást a maxkapacitásnyival /// </summary> /// <param name="tarolhato">A tárolható típusa,a mit termel</param> public void Termel(Tipusok.Tarolhatok tarolhato) { Kapacitas[tarolhato][0] = Kapacitas[tarolhato][1]; Logger.Log(MezoTipus + "Mező termelt"); }
/// <summary> /// Visszaadja mmenyit-nyit a Tárolhato-ból /// </summary> /// <param name="tarolhato">A típus, amiből lekérjük a mennyiséget</param> /// <param name="mennyit">A mennyiség, hogy mennyit szeretne kivenni a tárolóból</param> /// <returns>Visszaad mennyit-nyit, ha van belőle mennyit-nyi a kapacitásban, ellenkező esetben dob egy NincsElégTarolhatoException-t</returns> public void Kivesz(Tipusok.Tarolhatok tarolhato, int mennyit) { if (!Kapacitas.TryGetValue(tarolhato, out int[] tarolt_mennyiseg))