47 lines
1.8 KiB
C#
47 lines
1.8 KiB
C#
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]));
|
||
}
|
||
}
|