public virtual string ToWorkshop()
        {
            List <IWorkshopTree> elementParameters = new List <IWorkshopTree>();

            for (int i = 0; i < ParameterData.Length; i++)
            {
                IWorkshopTree parameter = ParameterValues?.ElementAtOrDefault(i);

                // If the parameter is null, get the default variable.
                if (parameter == null)
                {
                    parameter = ParameterData[i].GetDefault();
                }

                elementParameters.Add(parameter);
            }

            List <string> parameters = AdditionalParameters().ToList();

            parameters.AddRange(elementParameters.Select(p => p.ToWorkshop()));

            return(ElementData.ElementName +
                   (parameters.Count == 0 ? "" : "(" + string.Join(", ", parameters) + ")")
                   + (!ElementData.IsValue ? (";" + (Comment != null ? " // " + Comment : "")) : ""));
        }
        protected void AddMissingParameters()
        {
            List <IWorkshopTree> parameters = new List <IWorkshopTree>();

            for (int i = 0; i < ParameterData.Length || i < ParameterValues.Length; i++)
            {
                parameters.Add(ParameterValues?.ElementAtOrDefault(i) ?? ParameterData[i].GetDefault());
            }

            ParameterValues = parameters.ToArray();
        }
        /// <summary>Makes sure no parameter values are null.</summary>
        private void AddMissingParameters()
        {
            List <IWorkshopTree> parameters = new List <IWorkshopTree>();

            for (int i = 0; (Function.Parameters != null && i < Function.Parameters.Length) || (ParameterValues != null && i < ParameterValues.Length); i++)
            {
                parameters.Add(ParameterValues?.ElementAtOrDefault(i) ?? Function.Parameters[i].GetDefaultValue() ?? throw new Exception("Null argument"));
            }

            ParameterValues = parameters.ToArray();
        }
Esempio n. 4
0
        public virtual string ToWorkshop(OutputLanguage language)
        {
            List <IWorkshopTree> elementParameters = new List <IWorkshopTree>();

            for (int i = 0; i < ParameterData.Length; i++)
            {
                IWorkshopTree parameter = ParameterValues?.ElementAtOrDefault(i);

                // If the parameter is null, get the default variable.
                if (parameter == null)
                {
                    parameter = ParameterData[i].GetDefault();
                }

                elementParameters.Add(parameter);
            }

            List <string> parameters = AdditionalParameters().ToList();

            parameters.AddRange(elementParameters.Select(p => p.ToWorkshop(language)));

            string result = "";

            if (!ElementList.IsValue && Disabled)
            {
                result += I18n.I18n.Translate(language, "disabled") + " ";
            }
            result += I18n.I18n.Translate(language, Name);
            if (parameters.Count != 0)
            {
                result += "(" + string.Join(", ", parameters) + ")";
            }
            if (!ElementList.IsValue)
            {
                result += ";";
            }
            return(result);
        }