public static string GetFormattedString(this VariableBuildingSubType var, IEnumerable <int> platforms, ushort buildingId, TextParameterVariableWrapper varWrapper)
        {
            if (buildingId == 0)
            {
                return(null);
            }
            switch (var)
            {
            case VariableBuildingSubType.OwnName:
                return(varWrapper.TryFormat(WTSCacheSingleton.instance.GetBuilding(buildingId).Name));

            case VariableBuildingSubType.NextStopLine:
                return(varWrapper.TryFormat(WTSCacheSingleton.instance.GetBuilding(WTSStopUtils.GetTargetStopInfo(platforms, buildingId).FirstOrDefault().NextStopBuildingId).Name));

            case VariableBuildingSubType.PrevStopLine:
                return(varWrapper.TryFormat(WTSCacheSingleton.instance.GetBuilding(WTSStopUtils.GetTargetStopInfo(platforms, buildingId).FirstOrDefault().PrevStopBuildingId).Name));

            case VariableBuildingSubType.LastStopLine:
                return(varWrapper.TryFormat(WTSCacheSingleton.instance.GetBuilding(WTSStopUtils.GetTargetStopInfo(platforms, buildingId).FirstOrDefault().DestinationBuildingId).Name));

            case VariableBuildingSubType.PlatformNumber:
                return(varWrapper.TryFormat(platforms.FirstOrDefault() + 1));

            default:
                return(null);
            }
        }
        public static bool ReadData(this VariableBuildingSubType var, string[] relativeParams, ref Enum subtype, ref string numberFormat, ref string stringFormat, ref string prefix, ref string suffix)
        {
            var cmdLevel = var.GetCommandLevel();

            if (cmdLevel is null)
            {
                return(false);
            }

            cmdLevel.ParseFormatting(relativeParams, ref numberFormat, ref stringFormat, ref prefix, ref suffix);
            subtype = var;
            return(true);
        }
        public static CommandLevel GetCommandLevel(this VariableBuildingSubType var)
        {
            switch (var)
            {
            case VariableBuildingSubType.OwnName:
            case VariableBuildingSubType.NextStopLine:
            case VariableBuildingSubType.PrevStopLine:
            case VariableBuildingSubType.LastStopLine:
            case VariableBuildingSubType.PlatformNumber:
                return(CommandLevel.m_stringFormat);

            default:
                return(null);
            }
        }