Ejemplo n.º 1
0
        public static Dizajn Ucitaj(PodaciCitac ulaz)
        {
            int    id  = ulaz.podatakInt(PohId);
            string ime = ulaz.podatak(PohIme);
            int    pozeljnaPozicija = ulaz.podatakInt(PohPozicija);

            UcitanaKomp komp = ucitajKomponentu(ulaz.podatak(PohTrup));
            Trup        trup = Trup.TrupInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo);

            Zbir <Oruzje> primOruzje;

            if (ulaz.ima(PohPrimOruzje))
            {
                komp       = ucitajKomponentu(ulaz.podatak(PohPrimOruzje));
                primOruzje = new Zbir <Oruzje>(
                    Oruzje.OruzjeInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo),
                    komp.kolicina);
            }
            else
            {
                primOruzje = new Zbir <Oruzje>(null, 0);
            }

            Zbir <Oruzje> sekOruzje;

            if (ulaz.ima(PohSekOruzje))
            {
                komp      = ucitajKomponentu(ulaz.podatak(PohSekOruzje));
                sekOruzje = new Zbir <Oruzje>(
                    Oruzje.OruzjeInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo),
                    komp.kolicina);
            }
            else
            {
                sekOruzje = new Zbir <Oruzje>(null, 0);
            }

            double udio = ulaz.podatakDouble(PohUdioPrimOruzja);

            Stit stit = null;

            if (ulaz.ima(PohStit))
            {
                komp = ucitajKomponentu(ulaz.podatak(PohStit));
                stit = Stit.StitInfo.
                       IzIda(komp.idInfa).
                       naciniKomponentu(komp.nivo, trup.VelicinaStita);
            }

            MZPogon mzPogon = null;

            if (ulaz.ima(PohMZPogon))
            {
                komp    = ucitajKomponentu(ulaz.podatak(PohMZPogon));
                mzPogon = MZPogon.MZPogonInfo.
                          IzIda(komp.idInfa).
                          naciniKomponentu(komp.nivo, trup.VelicinaMZPogona);
            }

            komp = ucitajKomponentu(ulaz.podatak(PohOklop));
            Oklop oklop = Oklop.OklopInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo);

            komp = ucitajKomponentu(ulaz.podatak(PohSenzor));
            Senzor senzor = Senzor.SenzorInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo);

            komp = ucitajKomponentu(ulaz.podatak(PohPotisnici));
            Potisnici potisnici = Potisnici.PotisnikInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo);

            komp = ucitajKomponentu(ulaz.podatak(PohReaktor));
            Reaktor reaktor = Reaktor.ReaktorInfo.IzIda(komp.idInfa).naciniKomponentu(komp.nivo, trup.VelicinaReaktora);

            int brSpecOp = ulaz.podatakInt(PohSpecOp);
            Dictionary <SpecijalnaOprema, int> specOprema = new Dictionary <SpecijalnaOprema, int>();

            for (int i = 0; i < brSpecOp; i++)
            {
                komp = ucitajKomponentu(ulaz.podatak(PohSpecOp + i));
                SpecijalnaOprema so = SpecijalnaOprema.SpecijalnaOpremaInfo.
                                      IzIda(komp.idInfa).
                                      naciniKomponentu(komp.nivo, trup.velicina);

                specOprema.Add(so, komp.kolicina);
            }

            return(new Dizajn(id, ime, trup, primOruzje.komponenta, sekOruzje.komponenta,
                              udio, oklop, stit, specOprema, senzor, potisnici, mzPogon, reaktor,
                              pozeljnaPozicija));
        }