//meta! sender="AgentModelu", id="88", type="Call" public void ProcessInicializacia(MessageForm message) { // zaciatok planovania dovozu materialu message.Code = Mc.NalozAuto; message.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); ((MyMessage)message).Name = "A"; StartContinualAssistant(message); MyMessage sprava2 = new MyMessage(MySim); sprava2.Code = Mc.NalozAuto; sprava2.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); sprava2.Name = "B"; StartContinualAssistant(sprava2); MyMessage sprava3 = new MyMessage(MySim); sprava3.Code = Mc.NalozAuto; sprava3.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); sprava3.Name = "C"; StartContinualAssistant(sprava3); MyMessage sprava4 = new MyMessage(MySim); sprava4.Code = Mc.ExportZacaty; sprava4.Addressee = MyAgent.FindAssistant(SimId.PlanovacOdvozMaterialu); //StartContinualAssistant(sprava4); Notice(sprava4); }
public void ProcessStart(MessageForm message) { MyMessage zaciatokPracovnejDobyA = new MyMessage(MySim); zaciatokPracovnejDobyA.Addressee = MyAgent; zaciatokPracovnejDobyA.Code = Mc.ZaciatokPracovnejDoby; zaciatokPracovnejDobyA.Name = ((MyMessage)message).Name; Notice(zaciatokPracovnejDobyA); MyMessage sprava = new MyMessage(MySim); sprava.Name = ((MyMessage)message).Name; double delTime; if (sprava.Name == "A") { delTime = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacAStartsAt); } else { delTime = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacBStartsAt); } sprava.Code = Mc.KoniecPracovnejDoby; sprava.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby); Hold(delTime, sprava); }
//meta! sender="AgentDopravy", id="36", type="Request" public void ProcessNalozAuto(MessageForm message) { Vehicle naNalozenie = ((MyMessage)message).Car; // zaciatok cakania // to do dorobit ak cakalo cez noc tak += naNalozenie.ZaciatokCakania = MySim.CurrentTime; // TO=DO - KOLKO SA BUDE NAKLADAT NA AUTO ak bude na skladke menej materialu? Pocka na dovoz???? // ak nakladace prave niekoho nakladaju alebo nemaju pracovnu dobu if ((!(!MyAgent.NakladacBIsOccupied && MyAgent.NakladacBIsWorking()) && !(!MyAgent.NakladacAIsOccupied && MyAgent.NakladacAIsWorking())) || MyAgent.MaterialNaSkladke == 0) { lock (naNalozenie) { naNalozenie.Activity = "Waiting"; naNalozenie.Position = "Queue at Loader"; MyAgent.AutaSkladkaQueue.AddLast(naNalozenie); MyAgent.MessageSkladkaQueue.AddLast((MyMessage)message); } } else { // ak B ma pracovnu dobu a nenaklada nikoho if (!MyAgent.NakladacBIsOccupied && MyAgent.NakladacBIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacB); MyAgent.NakladacBIsOccupied = true; naNalozenie.Activity = "Being loaded"; naNalozenie.Position = "Loader B"; BStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(message); } else if (!MyAgent.NakladacAIsOccupied && MyAgent.NakladacAIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacA); MyAgent.NakladacAIsOccupied = true; naNalozenie.Activity = "Being loaded"; naNalozenie.Position = "Loader A"; AStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(message); } } }
//meta! sender="AgentVozidiel", id="30", type="Request" public void ProcessNastupenie(MessageForm message) { MyMessage ms = (MyMessage)message.CreateCopy(); var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[vozidlo.AktualnyPresun].ZastavkaStart; //Console.WriteLine("Prisiel na zastavku " + zastavka.Nazov + " "+ MySim.CurrentTime); if (zastavka.Nazov != "ST") { if (zastavka.PocetCestujucich == 0) { OdchodAutobusu(ms); return; } ms.Addressee = MyAgent.FindAssistant(SimId.ProcesNastupenie); StartContinualAssistant(ms); } else { //tuto ms.Addressee = MyAgent.FindAssistant(SimId.ProcesVystupenie); StartContinualAssistant(ms); } }
private void ProcessEndWorkDay(MessageForm message) { MyMessage naplanujZaciatokPrace = new MyMessage(MySim); naplanujZaciatokPrace.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby2); naplanujZaciatokPrace.Code = Mc.Start; StartContinualAssistant(naplanujZaciatokPrace); }
//meta! sender="AgentVozidiel", id="10", type="Request" public void ProcessPresun(MessageForm message) { //mam zacati presun jedneho auta MyMessage ms = (MyMessage)message.CreateCopy(); ms.Addressee = MyAgent.FindAssistant(SimId.ProcesPresun); StartContinualAssistant(ms); }
private void ProcessKoniecNastupu(MessageForm message) { var ms = (MyMessage)message; var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart; if (vozidlo.Typ == "A") { if (vozidlo.JePlny()) { vozidlo.Caka = false; if (zastavka.CakajuceVozidlo == vozidlo) { zastavka.CakajuceVozidlo = null; } OdchodAutobusu(message); return; } if (((MySimulation)MySim)._cakanie && zastavka.CakajuceVozidlo == null) { var ms2 = new MyMessage(MySim); ms2.Vozidlo = ms.Vozidlo; ms2.Addressee = MyAgent.FindAssistant(SimId.ProcesCakania); zastavka.CakajuceVozidlo = vozidlo; vozidlo.Caka = true; //dorobit nastupovanie pocas cakania StartContinualAssistant(ms2); } else { if (zastavka.CakajuceVozidlo != vozidlo) { vozidlo.Caka = false; OdchodAutobusu(message); } else { if (vozidlo.Odchod && vozidlo.PocetObsadenychDvery == 0) { vozidlo.Caka = false; zastavka.CakajuceVozidlo = null; vozidlo.Odchod = false; OdchodAutobusu(message); } else { ; } } } } else { OdchodAutobusu(ms); } }
//meta! sender="ProcesVykladacB", id="72", type="Finish" public void ProcessFinishProcesVykladacB(MessageForm message) { Vehicle auto = ((MyMessage)message).Car; if (auto.RealVolume == 0) { MyAgent.VykladacBIsOccupied = false; message.Code = Mc.VylozAuto; message.Addressee = MySim.FindAgent(SimId.AgentDopravy); Response(message); if (!MyAgent.AutaStavbaQueue.IsEmpty() && MyAgent.VykladacBIsWorking() && MyAgent.MaterialNaStavbe < Constants.MaxMaterialAtBuilding) { Vehicle naVylozenie; lock (Constants.Queue2Lock) { naVylozenie = MyAgent.AutaStavbaQueue.First.Value; MyAgent.AutaStavbaQueue.RemoveFirst(); } MyMessage msg = MyAgent.MessageStavbaQueue.First.Value; MyAgent.MessageStavbaQueue.RemoveFirst(); msg.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacB); msg.Code = Mc.VylozAuto; //msg.Addressee = MySim.FindAgent(SimId.AgentStavby); //Request(msg); // ukoncenie cakania naVylozenie.CasCakaniaNaStavbe = (MySim.CurrentTime - naVylozenie.ZaciatokCakania); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naVylozenie.CasCakaniaNaStavbe); naVylozenie.ToUnload = LoadCarWith(naVylozenie.RealVolume); msg.Car = naVylozenie; MyAgent.VykladacBIsOccupied = true; StartContinualAssistant(msg); } } else { // je volna kapacita? if (MyAgent.VykladacBIsWorking() && MyAgent.MaterialNaStavbe < Constants.MaxMaterialAtBuilding) { ((MyMessage)message).Car.ToUnload = LoadCarWith(auto.RealVolume); message.Code = Mc.VylozAuto; message.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacB); MyAgent.VykladacBIsOccupied = true; StartContinualAssistant(message); } else { MyAgent.AutaStavbaQueue.AddFirst(((MyMessage)message).Car); MyAgent.MessageStavbaQueue.AddFirst((MyMessage)message); MyAgent.VykladacBIsOccupied = false; } } }
//meta! sender="AgentSkladky", id="36", type="Response" public void ProcessNalozAuto(MessageForm message) { // auto skoncilo nakladanie MyMessage sprava = new MyMessage(MySim); sprava.Volume = ((MyMessage)message).Volume; sprava.Car = ((MyMessage)message).Car; sprava.Addressee = MyAgent.FindAssistant(SimId.ProcessPresunNaStavbu); StartContinualAssistant(sprava); }
//meta! sender="PlanovacDovozMaterialu", id="55", type="Finish" public void ProcessFinishPlanovacDovozMaterialu(MessageForm message) { message.Code = Mc.DovozMaterialu; message.Addressee = MySim.FindAgent(SimId.AgentModelu); Notice(message); MyMessage sprava = new MyMessage(MySim); sprava.Name = ((MyMessage)message).Name; sprava.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); StartContinualAssistant(sprava); }
//meta! sender="AgentDopravy", id="37", type="Request" public void ProcessVylozAuto(MessageForm message) { Vehicle naVylozenie = ((MyMessage)message).Car; // zaciatok cakania v rade // to do - podmienka aby sa cakalo iba do konca pracovnej doby Vykladaca a potom sa prirataval cas od zaciatku pracovnej doby naVylozenie.ZaciatokCakania = MySim.CurrentTime; // ak A nepracuje alebo naklada a B nepracuje alebo naklada alebo je zakazany if ((!(!MyAgent.VykladacBIsOccupied && !MyAgent.VykladacBIsDisabled && MyAgent.VykladacBIsWorking()) && !(!MyAgent.VykladacAIsOccupied && MyAgent.VykladacAIsWorking())) || MyAgent.MaterialNaStavbe == Constants.MaxMaterialAtBuilding) { MyAgent.AutaStavbaQueue.AddLast(naVylozenie); MyAgent.MessageStavbaQueue.AddLast((MyMessage)message); naVylozenie.Activity = "Waiting"; naVylozenie.Position = "Queue at unloader"; } else { // ak B pracuje, nie je zakazany a nenaklada if (!MyAgent.VykladacBIsOccupied && !MyAgent.VykladacBIsDisabled && MyAgent.VykladacBIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacB); MyAgent.VykladacBIsOccupied = true; naVylozenie.Activity = "Being unloaded"; naVylozenie.Position = "Unloader B"; // koniec cakania naVylozenie.CasCakaniaNaStavbe = (MySim.CurrentTime - naVylozenie.ZaciatokCakania); // pridanie do statistik naVylozenie.ToUnload = LoadCarWith(naVylozenie.RealVolume); MyAgent.WaitingTimePerCar.AddSample(naVylozenie.CasCakaniaNaStavbe); StartContinualAssistant(message); } // ak A pracuje a nenaklada else if (!MyAgent.VykladacAIsOccupied && MyAgent.VykladacAIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacA); MyAgent.VykladacAIsOccupied = true; naVylozenie.Activity = "Being unloaded"; naVylozenie.Position = "Unloader A"; // koniec cakania naVylozenie.CasCakaniaNaStavbe = (MySim.CurrentTime - naVylozenie.ZaciatokCakania); // pridanie do statistik naVylozenie.ToUnload = LoadCarWith(naVylozenie.RealVolume); MyAgent.WaitingTimePerCar.AddSample(naVylozenie.CasCakaniaNaStavbe); StartContinualAssistant(message); } } }
public void NejakaMetoda(MyMessage message) { Vehicle naNalozenie = null; // ak B ma pracovnu dobu a nenaklada nikoho if (!MyAgent.NakladacBIsOccupied && MyAgent.NakladacBIsWorking() && MyAgent.MaterialNaSkladke != 0) { MyMessage sprava = MyAgent.MessageSkladkaQueue.First.Value; MyAgent.MessageSkladkaQueue.RemoveFirst(); naNalozenie = MyAgent.AutaSkladkaQueue.First.Value; MyAgent.AutaSkladkaQueue.RemoveFirst(); sprava.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacB); MyAgent.NakladacBIsOccupied = true; BStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik sprava.Car = naNalozenie; MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(sprava); } else if (!MyAgent.NakladacAIsOccupied && MyAgent.NakladacAIsWorking()) { MyMessage sprava = MyAgent.MessageSkladkaQueue.First.Value; MyAgent.MessageSkladkaQueue.RemoveFirst(); naNalozenie = MyAgent.AutaSkladkaQueue.First.Value; MyAgent.AutaSkladkaQueue.RemoveFirst(); sprava.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacA); MyAgent.NakladacAIsOccupied = true; AStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik sprava.Car = naNalozenie; MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(sprava); } }
public override void PrepareReplication() { MyMessage sprava = new MyMessage(MySim); double delTime = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacAStartsAt); sprava.Name = "A"; sprava.Code = Mc.KoniecPracovnejDoby; sprava.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby); Hold(delTime, sprava); MyMessage sprava2 = new MyMessage(MySim); double delTime2 = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacBStartsAt); sprava2.Name = "B"; sprava2.Code = Mc.KoniecPracovnejDoby; sprava2.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby); Hold(delTime2, sprava2); }
//meta! sender="PlanovacOdvozMaterialu", id="125", type="Finish" public void ProcessFinishPlanovacOdvozMaterialu(MessageForm message) { // notice agentovi modelu -> dopravy -> Stavby MyMessage spravaDoprava = new MyMessage(MySim); spravaDoprava.Volume = ((MyMessage)message).Volume; spravaDoprava.Code = Mc.OdvozMaterialu; spravaDoprava.Addressee = MySim.FindAgent(SimId.AgentModelu); Notice(spravaDoprava); // naplanovat dalsi proces - ak je na stavbe dostatok materialu, TO-DO MyMessage novyOdvoz = new MyMessage(MySim); novyOdvoz.Code = Mc.OdvozMaterialu; novyOdvoz.Addressee = MyAgent.FindAssistant(SimId.PlanovacOdvozMaterialu); StartContinualAssistant(novyOdvoz); }
//meta! sender="AgentVozidiel", id="42", type="Notice" public void ProcessPrichodCestuZastavka(MessageForm message) { var ms = (MyMessage)message; var zastavka = MyAgent.ZastavkaList.FirstOrDefault(x => ms.Cestujuci.Zastavka != null && x.Nazov == ms.Cestujuci.Zastavka); zastavka.Enqueue(ms.Cestujuci); ms.Cestujuci.ZaciatokCakania = MySim.CurrentTime; //if (zastavka.Nazov == "AB") //{ // Console.WriteLine("AB "+ MySim.CurrentTime); //} if (zastavka.CakajuceVozidlo != null) { ms.Addressee = MyAgent.FindAssistant(SimId.ProcesNastupenie); ms.Vozidlo = zastavka.CakajuceVozidlo; StartContinualAssistant(ms); } }
private void ProcessStartWorkDay(MessageForm message) { AddUsageStats(message); Vehicle naNalozenie; if (!MyAgent.AutaSkladkaQueue.IsEmpty()) { lock (Constants.QueueLock) { naNalozenie = MyAgent.AutaSkladkaQueue.First.Value; MyAgent.AutaSkladkaQueue.RemoveFirst(); } MyMessage zFrontu = MyAgent.MessageSkladkaQueue.First.Value; MyAgent.MessageSkladkaQueue.RemoveFirst(); if (((MyMessage)message).Name == "A") { zFrontu.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacA); } else { zFrontu.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacB); } zFrontu.Code = Mc.NalozAuto; naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // ukoncenie cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); zFrontu.Car = naNalozenie; StartContinualAssistant(zFrontu); } }
//meta! sender="AgentStavby", id="37", type="Response" public void ProcessVylozAuto(MessageForm message) { // vykladanie skoncilo, auto pojde na prejazd message.Addressee = MyAgent.FindAssistant(SimId.ProcessPresunNaPrejazd); StartContinualAssistant(message); }
//meta! sender="ProcesNakladacB", id="70", type="Finish" public void ProcessFinishProcesNakladacB(MessageForm message) { if (((MyMessage)message).Car.RealVolume != ((MyMessage)message).Car.Volume && MyAgent.MaterialNaSkladke == 0 && MyAgent.fullLoad) { MyAgent.AutaSkladkaQueue.AddFirst(((MyMessage)message).Car); MyAgent.MessageSkladkaQueue.AddFirst((MyMessage)message); MyAgent.NakladacBIsOccupied = false; return; } if (((MyMessage)message).Car.RealVolume == ((MyMessage)message).Car.Volume || MyAgent.MaterialNaSkladke == 0 || !MyAgent.NakladacBIsWorking()) { MyAgent.NakladacBIsOccupied = false; message.Addressee = MySim.FindAgent(SimId.AgentDopravy); message.Code = Mc.NalozAuto; Response(message); Vehicle naNalozenie; if (!MyAgent.AutaSkladkaQueue.IsEmpty() && MyAgent.NakladacBIsWorking() && MyAgent.MaterialNaSkladke != 0) { lock (Constants.QueueLock) { naNalozenie = MyAgent.AutaSkladkaQueue.First.Value; MyAgent.AutaSkladkaQueue.RemoveFirst(); } MyMessage zFrontu = MyAgent.MessageSkladkaQueue.First.Value; MyAgent.MessageSkladkaQueue.RemoveFirst(); zFrontu.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacB); zFrontu.Code = Mc.NalozAuto; // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // ukoncenie cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); zFrontu.Car = naNalozenie; MyAgent.NakladacBIsOccupied = true; BStartedWorking = MySim.CurrentTime; StartContinualAssistant(zFrontu); } } else { ((MyMessage)message).Car.ToUnload = LoadCarWith(((MyMessage)message).Car.Volume - ((MyMessage)message).Car.RealVolume); MyAgent.NakladacBIsOccupied = true; BStartedWorking = MySim.CurrentTime; message.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacB); message.Code = Mc.NalozAuto; StartContinualAssistant(message); } }
//meta! sender="ProcesNakladacA", id="64", type="Finish" public void ProcessFinishProcesNakladacA(MessageForm message) { //ak je spusteny mod fullLoad if (((MyMessage)message).Car.RealVolume != ((MyMessage)message).Car.Volume && MyAgent.MaterialNaSkladke == 0 && MyAgent.fullLoad) { MyAgent.AutaSkladkaQueue.AddFirst(((MyMessage)message).Car); MyAgent.MessageSkladkaQueue.AddFirst((MyMessage)message); MyAgent.NakladacAIsOccupied = false; return; } //ak je plny, na skladne nic nie je alebo je vypnuty, tak auto posle dalej if (((MyMessage)message).Car.RealVolume == ((MyMessage)message).Car.Volume || MyAgent.MaterialNaSkladke == 0 || !MyAgent.NakladacAIsWorking()) { MyAgent.NakladacAIsOccupied = false; message.Addressee = MySim.FindAgent(SimId.AgentDopravy); message.Code = Mc.NalozAuto; Response(message); // ak v rade niekto dalsi caka, zacne sa znova nakladanie Vehicle naNalozenie; if (!MyAgent.AutaSkladkaQueue.IsEmpty() && MyAgent.NakladacAIsWorking() && MyAgent.MaterialNaSkladke != 0) { lock (Constants.QueueLock) { naNalozenie = MyAgent.AutaSkladkaQueue.First.Value; MyAgent.AutaSkladkaQueue.RemoveFirst(); } MyMessage zFrontu = MyAgent.MessageSkladkaQueue.First.Value; MyAgent.MessageSkladkaQueue.RemoveFirst(); zFrontu.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacA); zFrontu.Code = Mc.NalozAuto; // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // ukoncenie cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); zFrontu.Car = naNalozenie; MyAgent.NakladacAIsOccupied = true; AStartedWorking = MySim.CurrentTime; StartContinualAssistant(zFrontu); } } else { //auto odoslane naspat na doplnenie ((MyMessage)message).Car.ToUnload = LoadCarWith(((MyMessage)message).Car.Volume - ((MyMessage)message).Car.RealVolume); MyAgent.NakladacAIsOccupied = true; AStartedWorking = MySim.CurrentTime; message.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacA); message.Code = Mc.NalozAuto; StartContinualAssistant(message); } }
//meta! sender="ProcessPresunNaPrejazd", id="110", type="Finish" public void ProcessFinishProcessPresunNaPrejazd(MessageForm message) { message.Addressee = MyAgent.FindAssistant(SimId.ProcessPresunNaSkladku); message.Code = Mc.NalozAuto; StartContinualAssistant(message); }