public void ApplyParameters() { // Set the return type to the Vector class if the value returns a vector. if (ElementValueType == ValueType.Vector) { CodeType = VectorType.Instance; } // Get the parameters. Parameters = new Parse.CodeParameter[WorkshopParameters.Length]; for (int i = 0; i < Parameters.Length; i++) { string name = WorkshopParameters[i].Name.Replace(" ", ""); string description = Wiki?.GetWikiParameter(WorkshopParameters[i].Name)?.Description; if (WorkshopParameters[i] is VarRefParameter) { Parameters[i] = new VariableParameter( name, description, ((VarRefParameter)WorkshopParameters[i]).IsGlobal ? VariableType.Global : VariableType.Player, new VariableResolveOptions() { CanBeIndexed = false, FullVariable = true } ); } else { CodeType codeType = null; // If the parameter is an enum, get the enum CodeType. if (WorkshopParameters[i] is EnumParameter) { codeType = ValueGroupType.GetEnumType(((EnumParameter)WorkshopParameters[i]).EnumData); } var defaultValue = WorkshopParameters[i].GetDefault(); Parameters[i] = new CodeParameter( name, description, codeType, defaultValue == null ? null : new ExpressionOrWorkshopValue(defaultValue) ); // If the default parameter value is an Element and the Element is restricted, if (defaultValue is Element parameterElement && parameterElement.ElementList.Restricted != null) { // ...then add the restricted call type to the parameter's list of restricted call types. Parameters[i].RestrictedCalls.Add((RestrictedCallType)parameterElement.ElementList.Restricted); } } } }
public void ApplyParameters() { Parameters = new Parse.CodeParameter[WorkshopParameters.Length]; for (int i = 0; i < Parameters.Length; i++) { string name = WorkshopParameters[i].Name.Replace(" ", ""); string description = Wiki?.GetWikiParameter(WorkshopParameters[i].Name)?.Description; if (WorkshopParameters[i] is VarRefParameter) { Parameters[i] = new WorkshopVariableParameter( name, description, ((VarRefParameter)WorkshopParameters[i]).IsGlobal ); } else { CodeType codeType = null; // If the parameter is an enum, get the enum CodeType. if (WorkshopParameters[i] is EnumParameter) { codeType = WorkshopEnumType.GetEnumType(((EnumParameter)WorkshopParameters[i]).EnumData); } var defaultValue = WorkshopParameters[i].GetDefault(); Parameters[i] = new CodeParameter( name, codeType, defaultValue == null ? null : new ExpressionOrWorkshopValue(defaultValue), description ); } } }