using TypCasu = int; namespace Pisek { internal class Auto { public string jmeno; Model model; int nosnost; TypCasu dobaNakladani; TypCasu dobaVykladani; TypCasu dobaJizdyAB; int kolikVeze; public Auto(string jmeno, Model model, int nosnost, int dobaNakladani, int dobaVykladani, int dobaJizdyAB) { this.jmeno = jmeno; this.model = model; this.nosnost = nosnost; this.dobaNakladani = dobaNakladani; this.dobaVykladani = dobaVykladani; this.dobaJizdyAB = dobaJizdyAB; model.Naplanuj(model.Cas, this, TypUdalosti.PrijizdiDoA); } public void ZpracujUdalost(Udalost u) { switch (u.Co) { case TypUdalosti.PrijizdiDoA: int kdyZacnuNakladat; if (model.Cas > model.VKolikHodinMuzeZacitNakladat) kdyZacnuNakladat = model.Cas; else kdyZacnuNakladat = model.VKolikHodinMuzeZacitNakladat; model.VKolikHodinMuzeZacitNakladat = kdyZacnuNakladat + dobaNakladani; model.Naplanuj(kdyZacnuNakladat, this, TypUdalosti.ZacinaNakladat); break; case TypUdalosti.ZacinaNakladat: model.Naplanuj(model.Cas + dobaNakladani, this, TypUdalosti.Nalozeno); if (model.PisekVA < nosnost) kolikVeze = model.PisekVA; else kolikVeze = nosnost; model.PisekVA -= kolikVeze; break; case TypUdalosti.Nalozeno: model.Naplanuj(model.Cas + dobaJizdyAB, this, TypUdalosti.PrijizdiDoB); break; case TypUdalosti.PrijizdiDoB: model.Naplanuj(model.Cas + dobaVykladani, this, TypUdalosti.Vylozeno); break; case TypUdalosti.Vylozeno: model.Naplanuj(model.Cas + dobaJizdyAB, this, TypUdalosti.PrijizdiDoA); model.PisekVB += kolikVeze; break; default: break; } } } }