63 lines
2.2 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 ProjectGasolineTanker.Entities;
/// <summary>
/// Класс-сущность "Бензовоз"
/// </summary>
public class EntityGasolineTanker : EntityTruck
{
/// <summary>
/// Дополнительный цвет (для опциональных элементов)
/// </summary>
public Color AdditionalColor { get; private set; }
public void SetAdditionalColor(Color color)
{
AdditionalColor = color;
}
/// <summary>
/// Признак (опция) наличия бака под бензин
/// </summary>
public bool GasTank { get; private set; }
/// <summary>
/// Признак (опция) наличия сигнального маяка на кабине
/// </summary>
public bool SignalBeacon { get; private set; }
/// <summary>
/// Шаг перемещения бензовоза
/// </summary>
public double Step => Speed * 200 / Weight;
public EntityGasolineTanker(int speed, double weight, Color bodyColor, Color additionalColor, bool gasTank, bool signalBeacon) : base(speed, weight, bodyColor)
{
AdditionalColor = additionalColor;
GasTank = gasTank;
SignalBeacon = signalBeacon;
}
/// <summary>
/// Получение строк со значениями свойств объекта класса-сущности
/// </summary>
/// <returns></returns>
public override string[] GetStringRepresentation()
{
return new string[] {nameof(EntityGasolineTanker), Speed.ToString(), Weight.ToString(), BodyColor.Name, AdditionalColor.Name, GasTank.ToString(), SignalBeacon.ToString()};
}
/// <summary>
/// Создание объекта из массива строк
/// </summary>
/// <param name="strs"></param>
/// <returns></returns>
public static EntityGasolineTanker? CreateEntityGasolineTanker(string[] strs)
{
if (strs.Length != 7 || strs[0] != nameof(EntityGasolineTanker))
{
return null;
}
return new EntityGasolineTanker(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]), Color.FromName(strs[4]), Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[6]));
}
}