Exemplo n.º 1
0
 private void UpdatePermanentData(PermanentViewData permanentViewData)
 {
     Generation     = permanentViewData.Generation;
     Time           = permanentViewData.Time;
     Constants      = permanentViewData.Constants;
     Nations        = permanentViewData.Nations.ToDictionary(data => data.Id);
     ShipClasses    = permanentViewData.ShipClasses.ToDictionary(data => data.Id);
     MissileClasses = permanentViewData.MissileClasses.ToDictionary(data => data.Id);
     Stars          = permanentViewData.Stars.ToDictionary(data => data.Id);
     Ships          = permanentViewData.Ships.Select(data => new Ship(data)).ToDictionary(ship => ship.Id);
     ShipClasses.Values.ApplyNations(Nations);
     MissileClasses.Values.ApplyNations(Nations);
     Stars.Values.ApplyNations(Nations);
     Ships.Values.ApplyNations(Nations);
     foreach (var shipClass in ShipClasses.Values)
     {
         foreach (var missileRack in shipClass.Right)
         {
             missileRack.MissileClass = MissileClasses[missileRack.IdMissileClass];
         }
         foreach (var missileRack in shipClass.Left)
         {
             missileRack.MissileClass = MissileClasses[missileRack.IdMissileClass];
         }
     }
     foreach (var ship in Ships.Values)
     {
         ship.Class = ShipClasses[ship.IdClass];
     }
 }
Exemplo n.º 2
0
        public ClientData GetView(int generation)
        {
            if (Universe == null)
            {
                return(null);
            }
            PermanentViewData p = Universe.Generation == generation ? null : Universe.GetPermanentData();
            VolatileViewData  v = ship == null ? null : Universe.GetVolatileData();
            ControlShipData   c = ship == null ? null : ship.ControlShip;

            return(new ClientData
            {
                Permanent = p,
                Volatile = v,
                Navigation = c,
            });
        }
Exemplo n.º 3
0
        public static Universe Load(string filename)
        {
            string            xml  = File.ReadAllText(filename, Encoding.Unicode);
            ServerData        view = Xml.DeserializeObject <ServerData>(xml);
            PermanentViewData p    = view.Permanent;
            Universe          u    = new Universe
            {
                Constants      = p.Constants,
                Generation     = p.Generation,
                Nations        = p.Nations.ToDictionary(nation => nation.Id),
                Stars          = p.Stars.ToDictionary(star => star.Id),
                ShipClasses    = p.ShipClasses.ToDictionary(shipClass => shipClass.Id),
                MissileClasses = p.MissileClasses.ToDictionary(missileClass => missileClass.Id),
                Ships          = p.Ships.Select(data => new ServerShip(data)).ToDictionary(ship => ship.Id),
            };

            u.Initialize();
            u.UpdateControlsData(view.Controls);
            u.UpdateVolatileData(view.Volatile);
            return(u);
        }