PIbd-14_Pruidze_I.K_Simple_.../ProjectCruiser/Entities/EntityCruiser.cs

47 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace ProjectCruiser.Entities;
public class EntityCruiser : EntityBase
{
public Color AdditionalColor { get; private set; } // доп. цвет
public void setAdditionalColor(Color clr)
{
AdditionalColor = clr;
}
// признаки (наличия)
public bool HelicopterPads { get; private set; } // вертолетная площадка
public bool Hangars { get; private set; } // ангар
public EntityCruiser(int speed, double weight, Color mainc,
Color additionalColor, bool pad, bool hangars)
: base(speed, weight, mainc)
{
AdditionalColor = additionalColor;
HelicopterPads = pad; // non-default now for editor Form3
Hangars = hangars;
}
// Получение массива строк со значениями свойств
// объекта : тип (название класса), скорость, вес, осн. цвет [*],
// доп. цвет, истинность наличия площадки и (,) ангаров.
public virtual string[] GetStringRepresentation()
{
return new[] { nameof(EntityCruiser), Speed.ToString(),
Weight.ToString(), MainColor.Name, AdditionalColor.Name,
HelicopterPads.ToString(), Hangars.ToString()};
}
// decoding string to object
public static EntityCruiser? CreateEntity(string[] parameters)
{
if (parameters.Length != 7 || parameters.Length == 0 ||
parameters[0] != "EntityCruiser") return null;
return new EntityCruiser(Convert.ToInt32(parameters[1]),
Convert.ToDouble(parameters[2]), Color.FromName(parameters[3]),
Color.FromName(parameters[4]), Convert.ToBoolean(parameters[5]),
Convert.ToBoolean(parameters[6]));
}
}