示例#1
0
        /// <inheritdoc />
        /// <summary>
        /// Получает метаданные этого природного явления
        /// </summary>
        /// <returns>Метаданные</returns>
        public PhenomenMetadata GetMetadata()
        {
            log.Debug(LogPhenomenMessages.GetMetadata, "SunPhenomen");
            Dictionary <string, string> param = new Dictionary <string, string>(1);

            param.Add("Intensity", (BaseIntensity * _powerFactor).ToString(CultureInfo.InvariantCulture));
            PhenomenMetadata ret = new PhenomenMetadata("SunPhenomen", _place, this.GetType().Name, param);

            log.Trace(LogPhenomenMessages.EndMethod, "SunPhenomen.GetMetadata");
            return(ret);
        }
        /// <summary>
        /// Получает метаданные этого природного явления.
        /// </summary>
        /// <returns></returns>
        public PhenomenMetadata GetMetadata()
        {
            log.Debug(LogPhenomenMessages.GetMetadata, "SeasonsPhenomen");
            Dictionary <string, string> data = new Dictionary <string, string> {
            };

            data.Add("step", Convert.ToString(_step));
            data.Add("season", _season.ToString());
            PhenomenMetadata phenomenMetadata = new PhenomenMetadata("SeasonsPhenomen", _place, this.GetType().Name, data);

            log.Trace(LogPhenomenMessages.EndMethod, "SeasonsPhenomen.GetMetadata");
            return(phenomenMetadata);
        }
        /// <summary>
        ///  Воссоздает природное явление из Simple2DWorld из его метаданных
        /// </summary>
        /// <param name="phenomenMetadata">Метаданные природного явления</param>
        /// <returns></returns>
        public IPhenomen ReconstructPhenomen(PhenomenMetadata phenomenMetadata)
        {
            string name = phenomenMetadata.Name;

            if (name == _sunPhenomenTypeName)
            {
                return(new SunPhenomen(phenomenMetadata.Place));
            }
            else if (name == _seasonsPhenomenTypeName)
            {
                return(new SeasonsPhenomen());
            }
            else if (name == _mineralPhenomenTypeName)
            {
                return(new MineralsPhenomen(phenomenMetadata.Place));
            }
            else
            {
                throw  new ArgumentException("The phenomenMetadata describing phenomen isn't be contained in Simple2DWorld.",
                                             nameof(phenomenMetadata));
            }
        }