/// <summary> /// Получает прототип метаданных мира. /// </summary> /// <returns>Прототип googleProtobuf</returns> public Protobuff.Metadata.WorldMetadata GetProtoMetadata() { Protobuff.Metadata.WorldMetadata ret = new Protobuff.Metadata.WorldMetadata(); ret.Age = Age; ret.EnvironmentMetadata = EnvironmentMetadata.GetProtoMetadata(); ret.Name = Name; foreach (var pair in LifeFormsMetadata) { ret.LifeFormMetadata.Add(pair.Key, pair.Value.GetProtoMetadata()); } return(ret); }
/// <summary> /// Инициализирует метаданные мира из их прототипа /// </summary> /// <param name="protoMetadata">прототип googleProtobuff</param> public WorldMetadata(Protobuff.Metadata.WorldMetadata protoMetadata) { if (protoMetadata == null) { throw new ArgumentNullException(nameof(protoMetadata)); } Name = protoMetadata.Name; Age = protoMetadata.Age; LifeFormsMetadata = new Dictionary <long, LifeFormMetadata>(); EnvironmentMetadata = new EnvironmentMetadata(protoMetadata.EnvironmentMetadata); foreach (var pair in protoMetadata.LifeFormMetadata) { LifeFormsMetadata.Add(pair.Key, new LifeFormMetadata(pair.Value)); } }
/// <summary> /// Получает прототип метаданных мира. /// </summary> /// <returns>Прототип googleProtobuf</returns> public Protobuff.Metadata.WorldMetadata GetProtoMetadata() { log.Trace(LogMetadataMessages.ProtobuffFromMetadata, "WorldMetadata"); Protobuff.Metadata.WorldMetadata ret = new Protobuff.Metadata.WorldMetadata(); ret.Age = Age; ret.EnvironmentMetadata = EnvironmentMetadata.GetProtoMetadata(); ret.Name = Name; foreach (var pair in this) { ret.LifeFormMetadata.Add(pair.Key, pair.Value.GetProtoMetadata()); } log.Info("Возраст {0}, Имя {1}, Кол-во метаданных форм жизни {2}", Age, Name, this.Count); log.Trace(LogMetadataMessages.OkProtobuffFromMetadata); return(ret); }
/// <summary> /// Инициализирует метаданные мира из их прототипа /// </summary> /// <param name="protoMetadata">прототип googleProtobuff</param> public WorldMetadata(Protobuff.Metadata.WorldMetadata protoMetadata) { log.Trace(LogMetadataMessages.MetadataFromProtobuff, "WorldMetadata"); if (protoMetadata == null) { ArgumentNullException ex = new ArgumentNullException(nameof(protoMetadata)); log.Error(LogMetadataMessages.NullArgument, "Protobuff.Metadata.WorldMetadata protoMetadata"); } Name = protoMetadata.Name; Age = protoMetadata.Age; EnvironmentMetadata = new EnvironmentMetadata(protoMetadata.EnvironmentMetadata); foreach (var pair in protoMetadata.LifeFormMetadata) { this.Add(pair.Key, new LifeFormMetadata(pair.Value)); } log.Info("Возраст {0}, Имя {1}, Кол-во метаданных форм жизни {2}", Age, Name, this.Count); log.Trace(LogMetadataMessages.OkMetadataFromProtobuff); }